Clase Complexnumber Mejorada - Ejercicio De Programacion C# Sharp

En este ejercicio de C#, se debe mejorar la clase ComplexNumber para sobrecargar los operadores + y - con el fin de permitir la suma y la resta de números complejos. La sobrecarga del operador + debe permitir sumar dos números complejos, donde la parte real de los números se sume entre sí y la parte imaginaria también se sume. De manera similar, la sobrecarga del operador - debe permitir restar dos números complejos, restando tanto las partes reales como las imaginarias.

Este ejercicio es una excelente práctica para aprender a trabajar con sobrecarga de operadores en C#, lo cual es una característica avanzada que permite realizar operaciones personalizadas entre objetos de una clase. Además, es una oportunidad para mejorar la comprensión de cómo funcionan los números complejos y cómo implementarlos en programación orientada a objetos.

 Categoría

POO Más sobre Clases

 Ejercicio

Clase Complexnumber Mejorada

 Objectivo

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

 Ejemplo Ejercicio C#

 Copiar Código C#
// 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()}");
    }
}

 Salida

Complex Number 1: (3, 4)
Complex Number 2: (1, 2)
Sum: (4, 6)
Difference: (2, 2)
Magnitude of Complex Number 1: 5
Magnitude of Complex Number 2: 2.23606797749979

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de POO Más sobre Clases

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Punto 3D

    En este ejercicio de C#, se debe crear una clase llamada Point3D para representar un punto en el espacio tridimensional, con coordenadas X, Y y Z. La clase deb...

  •  Catálogo + Menú

    En este ejercicio de C#, se debe mejorar el programa del catálogo para que el método Main muestre un menú que permita ingresar nuevos datos de cualquier tipo, ...

  •  Matriz de objetos: tabla

    En este ejercicio, debes crear una clase llamada "Table". Esta clase debe tener un constructor que reciba el ancho y alto de la mesa. La clase...

  •  House

    En este ejercicio, debes crear una clase llamada "House" que tendrá un atributo llamado "area". La clase debe tener un constructor que permita asignar un valor...

  •  Tabla + coffetable + array

    En este ejercicio, debes crear un proyecto llamado "Tables2", basado en el proyecto "Tables". En este nuevo proyecto, debes crear una clase llamada "CoffeeTable" que ...

  •  Encriptador

    En este ejercicio, debes crear una clase llamada "Encrypter" para encriptar y desencriptar texto. La clase tendrá un método "Encrypt", que...