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 de Ejemplo
// Importing the System namespace for basic system functionalities like Console for input/output
using System;
public class ComplexNumber
{
// Private fields for the real and imaginary parts of the complex number
private double real;
private double imaginary;
// Constructor to set the values for the real and imaginary parts
public ComplexNumber(double real, double imaginary)
{
this.real = real; // Setting the real part
this.imaginary = imaginary; // Setting the imaginary part
}
// Getter for the real part
public double GetReal()
{
return real; // Returning the real part
}
// Setter for the real part
public void SetReal(double real)
{
this.real = real; // Updating the real part
}
// Getter for the imaginary part
public double GetImaginary()
{
return imaginary; // Returning the imaginary part
}
// Setter for the imaginary part
public void SetImaginary(double imaginary)
{
this.imaginary = imaginary; // Updating the imaginary part
}
// Method to return the complex number as a string in the format "(real, imaginary)"
public override string ToString()
{
return $"({real},{imaginary})"; // Returning the complex number as a string
}
// Method to calculate and return the magnitude of the complex number
public double GetMagnitude()
{
return Math.Sqrt(real * real + imaginary * imaginary); // Returning the magnitude (square root of a^2 + b^2)
}
// Method to add another complex number to this one
public ComplexNumber Add(ComplexNumber other)
{
double newReal = this.real + other.GetReal(); // Summing the real parts
double newImaginary = this.imaginary + other.GetImaginary(); // Summing the imaginary parts
return new ComplexNumber(newReal, newImaginary); // Returning the new complex number
}
// Main method to test the functionality of the ComplexNumber class
public static void Main()
{
// Creating two complex numbers
ComplexNumber complex1 = new ComplexNumber(2, -3); // 2 - 3i
ComplexNumber complex2 = new ComplexNumber(1, 4); // 1 + 4i
// Printing the complex numbers
Console.WriteLine($"Complex number 1: {complex1}"); // Output: (2,-3)
Console.WriteLine($"Complex number 2: {complex2}"); // Output: (1,4)
// Printing the magnitude of the first complex number
Console.WriteLine($"Magnitude of complex number 1: {complex1.GetMagnitude()}"); // Output: Magnitude of 2 - 3i
// Adding the two complex numbers and displaying the result
ComplexNumber sum = complex1.Add(complex2); // Adding the two complex numbers
Console.WriteLine($"Sum of complex numbers: {sum}"); // Output: (3,1)
}
}