Foglio1

Private Sub CommandButton1_Click() Dim x As Complesso Dim y As Complesso Dim z As Complesso x.Re = Range("D4").Value x.Im = Range("F4").Value x = ReIm_to_MoPh(x) y.Mo = Range("D6").Value y.Ph = Range("F6").Value y = MoPh_to_ReIm(y) z = ProdottoComplesso(x, y) Range("D14").Value = z.Re Range("F14").Value = z.Im Range("D16").Value = z.Mo Range("F16").Value = z.Ph End Sub



Modulo1

Type Complesso Re As Double Im As Double Mo As Double Ph As Double End Type Function ReIm_to_MoPh(a As Complesso) As Complesso a.Mo = Sqr(a.Re ^ 2 + a.Im ^ 2) If a.Re >= 0 Then If a.Re = 0 Then a.Re = 0.000000000000001 End If a.Ph = Atn(a.Im / a.Re) Else a.Ph = Atn(a.Im / a.Re) + Pi End If ReIm_to_MoPh = a End Function Function MoPh_to_ReIm(a As Complesso) As Complesso a.Re = a.Mo * Cos(a.Ph) a.Im = a.Mo * Sin(a.Ph) MoPh_to_ReIm = a End Function Function ProdottoComplesso(a As Complesso, b As Complesso) As Complesso Dim c As Complesso c.Mo = a.Mo * b.Mo c.Ph = a.Ph + b.Ph c.Re = c.Mo * Cos(c.Ph) c.Im = c.Mo * Sin(c.Ph) ProdottoComplesso = c End Function


ProdottoComplesso.xls