Mega Code Archive

 
Categories / VB.Net Tutorial / Data Type
 

Complex Number

Public Class Tester     Public Shared Sub Main         Dim result As New System.Text.StringBuilder         Dim a As ComplexNumber         Dim b As ComplexNumber         Dim c As ComplexNumber         a = New ComplexNumber(3, 4)         b = New ComplexNumber(5, -2)         c = a + b         result.AppendLine("Complex Numbers")         result.AppendLine("a = " & a.ToString())         result.AppendLine("b = " & b.ToString())         ' ----- Addition.         c = a + b         result.AppendLine("a + b = " & c.ToString())         ' ----- Subtraction.         c = a - b         result.AppendLine("a - b = " & c.ToString())         ' ----- Multiplication.         c = a * b         result.AppendLine("a * b = " & c.ToString())         ' ----- Division.         c = a / b         result.AppendLine("a / b = " & c.ToString())         ' ----- Addition as assignment.         a += b         result.AppendLine("a += b ... a = " & a.ToString())         Console.WriteLine(result.ToString())     End Sub      End Class Structure ComplexNumber     Public Real As Double     Public Imaginary As Double     Public Sub New(ByVal realPart As Double, ByVal imaginaryPart As Double)         Me.Real = realPart         Me.Imaginary = imaginaryPart     End Sub     Public Sub New(ByVal sourceNumber As ComplexNumber)         Me.Real = sourceNumber.Real         Me.Imaginary = sourceNumber.Imaginary     End Sub     Public Overrides Function ToString() As String         Return Real & "+" & Imaginary & "i"     End Function     Public Shared Operator +(ByVal a As ComplexNumber, _             ByVal b As ComplexNumber) As ComplexNumber         Return New ComplexNumber(a.Real + b.Real, a.Imaginary + b.Imaginary)     End Operator     Public Shared Operator -(ByVal a As ComplexNumber, _             ByVal b As ComplexNumber) As ComplexNumber         Return New ComplexNumber(a.Real - b.Real, a.Imaginary - b.Imaginary)     End Operator     Public Shared Operator *(ByVal a As ComplexNumber, _             ByVal b As ComplexNumber) As ComplexNumber         Return New ComplexNumber(a.Real * b.Real - a.Imaginary * b.Imaginary, _             a.Real * b.Imaginary + a.Imaginary * b.Real)     End Operator     Public Shared Operator /(ByVal a As ComplexNumber, _             ByVal b As ComplexNumber) As ComplexNumber         Return a * Reciprocal(b)     End Operator     Public Shared Function Reciprocal(ByVal a As ComplexNumber) As ComplexNumber         Dim divisor As Double         divisor = a.Real * a.Real + a.Imaginary * a.Imaginary         If (divisor = 0.0#) Then Throw New DivideByZeroException         Return New ComplexNumber(a.Real / divisor, -a.Imaginary / divisor)     End Function End Structure Complex Numbers a = 3+4i b = 5+-2i a + b = 8+2i a - b = -2+6i a * b = 23+14i a / b = 0.241379310344828+0.896551724137931i a += b ... a = 8+2i