TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
 Specialized Dev Zones Research Center eBook Library .NET Java C++ Web Dev Architecture Database Security Open Source Enterprise Mobile Special Reports 10-Minute Solutions DevXtra Blogs Slideshow

Language: VB4,VB5,VB6
Expertise: Intermediate
Dec 23, 2000

### WEBINAR:On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning

# CComplexNumber - A class for dealing with complex numbers

``````Option Explicit

'------------------------------------------
' A class for dealing with complex numbers
'------------------------------------------

' The main properties
Public Real As Double
Public Imaginary As Double

' Initialize this complex number
' (returns Me)

Function Init(Real As Double, Imaginary As Double) As CComplexNumber
Me.Real = Real
Me.Imaginary = Imaginary
Set Init = Me
End Function

' Returns another complex number with given
' real and imaginary parts

Function Complex(Real As Double, Imaginary As Double) As CComplexNumber
Set Complex = New CComplexNumber
Complex.Real = Real
Complex.Imaginary = Imaginary
End Function

' Add a complex number to the current one
' (returns Me)

Function Add(other As CComplexNumber) As CComplexNumber
Real = Real + other.Real
Imaginary = Imaginary + other.Imaginary
Set Add = Me
End Function

' Add a complex number to the current one
' (returns the result CComplexNumber)

Function Add2(Real As Double, Imaginary As Double) As CComplexNumber
Set Add2 = New CComplexNumber
Add2.Real = Me.Real + Real
Add2.Imaginary = Me.Imaginary + Imaginary
End Function

' Subtract a complex number from the current one
' (returns the result CComplexNumber)

Function Subtract2(Real As Double, Imaginary As Double) As CComplexNumber
Set Subtract2 = New CComplexNumber
Subtract2.Real = Me.Real - Real
Subtract2.Imaginary = Me.Imaginary - Imaginary
End Function

' Multiple a complex number by the current one
' (returns the result CComplexNumber)

Function Multiply2(Real As Double, Imaginary As Double) As CComplexNumber
Set Multiply2 = New CComplexNumber
Multiply2.Real = (Me.Real * Real - Me.Imaginary * Imaginary)
Multiply2.Imaginary = Me.Real * Imaginary + Me.Imaginary * Real
End Function

' Divide the current number by another complex number
' (returns the result CComplexNumber)

Function Divide2(Real As Double, Imaginary As Double) As CComplexNumber
Set Divide2 = New CComplexNumber
Dim sum As Double
' create the sum only once
sum = Real * Real + Imaginary * Imaginary
' evaluate the real and imaginary parts
Divide2.Real = (Me.Real * Real + Me.Imaginary * Imaginary) / sum
Divide2.Imaginary = (Me.Imaginary * Real - Me.Real * Imaginary) / sum
End Function

' Return the textual description of a complex number

Function Text() As String
If Imaginary = 0 Then
Text = LTrim\$(Real)
ElseIf Real = 0 Then
Text = LTrim\$(Imaginary) & "i"
ElseIf Imaginary > 0 Then
Text = LTrim\$(Real) & "+" & LTrim\$(Imaginary) & "i"
Else
Text = LTrim\$(Real) & LTrim\$(Imaginary) & "i"
End If
End Function

``````
Francesco Balena

 Submit a Tip Browse "XML" Tips Browse All Tips
Comment and Contribute

(Maximum characters: 1200). You have 1200 characters left.

Thanks for your registration, follow us on our social networks to keep up-to-date