Ejercicio
Números complejos
Objetivo
Un número complejo tiene dos partes: la parte real y la parte imaginaria. En un número como a+bi (2-3i, por ejemplo) la parte real sería "a" (2) y la parte imaginaria sería "b" (-3).
Cree una clase ComplexNumber con:
Un constructor para establecer los valores de la pieza real y la parte imaginaria.
Setters y getters para ambos.
Un método "ToString", que devolvería "(2,-3)"
Un método "GetMagnitude" para devolver la magnitud del número complejo (raíz cuadrada de a2+b2)
Un método "Add", para sumar dos números complejos (la parte real será la suma de ambas partes reales, y la parte imaginaria será la suma de ambas partes imaginarias)
Cree un programa de prueba para probar estas capacidades.
Código
Imports System
Class ComplexNumber
Protected a, b As Double
Public Sub New(ByVal realPart As Double, ByVal imaginaryPart As Double)
a = realPart
b = imaginaryPart
End Sub
Public Function GetReal() As Double
Return a
End Function
Public Sub SetReal(ByVal a As Double)
Me.a = a
End Sub
Public Function GetImaginary() As Double
Return b
End Function
Public Sub SetImaginary(ByVal b As Double)
Me.b = b
End Sub
Public Overloads Function ToString() As String
Return "(" & a & "," & b & ")"
End Function
Public Function GetMagnitude() As Double
Return Math.Sqrt((a * a) + (b * b))
End Function
Public Sub Add(ByVal c2 As ComplexNumber)
a += c2.GetReal()
b += c2.GetImaginary()
End Sub
End Class
Class ComplexTest
Private Shared Sub Main()
Dim debug As Boolean = False
Dim number As ComplexNumber = New ComplexNumber(5, 2)
Console.WriteLine("Number is: " & number.ToString())
number.SetImaginary(-3)
Console.WriteLine("Number is: " & number.ToString())
Console.Write("Magnitude is: ")
Console.WriteLine(number.GetMagnitude())
Dim number2 As ComplexNumber = New ComplexNumber(-1, 1)
number.Add(number2)
Console.Write("After adding: ")
Console.WriteLine(number.ToString())
If debug Then Console.ReadLine()
End Sub
End Class