Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6
Expertise: Intermediate
Dec 23, 2000

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
 
Comment and Contribute

 

 

 

 

 


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

 

 

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