Clase ComplexNumber mejorada Ejercicio C# - Curso de Programación C# (C Sharp)

 Ejercicio

Clase ComplexNumber mejorada

 Objetivo

Mejore la clase "ComplexNumber", para que sobrecargue los operadores + y - para sumar y restar números.

 Código de Ejemplo

// Importing the System namespace to handle basic functionalities and console output
using System;

public class ComplexNumber
{
    // Real and imaginary parts of the complex number
    private double real;
    private double imaginary;

    // Constructor to set the real and imaginary parts
    public ComplexNumber(double real, double imaginary)
    {
        this.real = real;
        this.imaginary = imaginary;
    }

    // Getter for real part
    public double Real
    {
        get { return real; }
    }

    // Getter for imaginary part
    public double Imaginary
    {
        get { return imaginary; }
    }

    // Method to return a string representation of the complex number
    public string ToString()
    {
        return $"({real}, {imaginary})";
    }

    // Method to calculate the magnitude of the complex number (|a + bi| = sqrt(a^2 + b^2))
    public double GetMagnitude()
    {
        return Math.Sqrt(real * real + imaginary * imaginary);
    }

    // Overloading the + operator to add two complex numbers
    public static ComplexNumber operator +(ComplexNumber c1, ComplexNumber c2)
    {
        double realSum = c1.real + c2.real;
        double imaginarySum = c1.imaginary + c2.imaginary;
        return new ComplexNumber(realSum, imaginarySum);
    }

    // Overloading the - operator to subtract two complex numbers
    public static ComplexNumber operator -(ComplexNumber c1, ComplexNumber c2)
    {
        double realDifference = c1.real - c2.real;
        double imaginaryDifference = c1.imaginary - c2.imaginary;
        return new ComplexNumber(realDifference, imaginaryDifference);
    }
}

// Auxiliary class with the Main function to test the functionality of the ComplexNumber class
public class Program
{
    public static void Main()
    {
        // Create two ComplexNumber objects
        ComplexNumber complex1 = new ComplexNumber(3, 4);
        ComplexNumber complex2 = new ComplexNumber(1, 2);

        // Display the original complex numbers
        Console.WriteLine("Complex Number 1: " + complex1.ToString());
        Console.WriteLine("Complex Number 2: " + complex2.ToString());

        // Adding the two complex numbers using the overloaded + operator
        ComplexNumber sum = complex1 + complex2;
        Console.WriteLine("Sum: " + sum.ToString());

        // Subtracting the two complex numbers using the overloaded - operator
        ComplexNumber difference = complex1 - complex2;
        Console.WriteLine("Difference: " + difference.ToString());
        
        // Displaying the magnitude of the complex numbers
        Console.WriteLine($"Magnitude of Complex Number 1: {complex1.GetMagnitude()}");
        Console.WriteLine($"Magnitude of Complex Number 2: {complex2.GetMagnitude()}");
    }
}

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...
 Números complejos
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 ...
 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...
 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.