Números complejos Ejercicio C# - Curso de Programación C# (C Sharp)

 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)
    }
}

Más ejercicios C# Sharp de POO Más sobre Clases

 Matriz de objetos: tabla
Cree una clase denominada "Table". Debe tener un constructor, indicando el ancho y alto de la placa. Tendrá un método "ShowData" que escribirá en la p...
 House
Cree una clase "House", con un atributo "area", un constructor que establezca su valor y un método "ShowData" para mostrar "Soy una casa, mi área es d...
 Tabla + coffetable + array
Cree un proyecto denominado "Tablas2", basado en el proyecto "Tablas". En él, cree una clase "CoffeeTable" que herede de "Table". Su método "ShowDa...
 Encriptador
Cree una clase "Encrypter" para cifrar y descifrar texto. Tendrá un método "Encrypt", que recibirá una cadena y devolverá otra cadena. Será un méto...
 tabla + coffetable + leg
Amplíe el ejemplo de las tablas y las mesas de centro, para agregar una clase "Leg" con un método "ShowData", que escribirá "I am a leg" y luego mostr...
 Catálogo
Cree el diagrama de clases y, a continuación, con Visual Studio, un proyecto y las clases correspondientes para una utilidad de catálogo: Podrá alm...
 Número aleatorio
Cree una clase RandomNumber, con tres métodos estáticos: - GetFloat devolverá un número entre 0 y 1 utilizando el siguiente algoritmo: semilla =...
 Texto a HTML
Crear una clase "TextToHTML", que debe ser capaz de convertir varios textos introducidos por el usuario en una secuencia HTML, como esta: Hola Soy...
 Clase ScreenText
Cree una clase ScreenText, para mostrar un texto determinado en coordenadas de pantalla especificadas. Debe tener un constructor que recibirá X, Y y l...
 Clase ComplexNumber mejorada
Mejore la clase "ComplexNumber", para que sobrecargue los operadores + y - para sumar y restar números....
 Punto 3D
Cree una clase "Point3D", para representar un punto en el espacio 3D, con coordenadas X, Y y Z. Debe contener los siguientes métodos: MoveTo, que c...
 Catálogo + Menú
Mejorar el programa Catálogo, de forma que "Principal" muestre un menú que permita introducir nuevos datos de cualquier tipo, así como visualizar todo...

Juan A. Ripoll - Tutoriales y Cursos de Programacion© 2025 Todos los derechos reservados.  Condiciones legales.