Números complejos - Ejercicio de Programacion C# Sharp

En este ejercicio de C#, se aborda el concepto de números complejos, que se componen de dos partes: la parte real y la parte imaginaria. En una expresión como a+bi (por ejemplo, 2-3i), la parte real sería "a" (2) y la parte imaginaria sería "b" (-3). Este ejercicio tiene como objetivo crear una clase llamada ComplexNumber, que tenga las siguientes características:

Un constructor que permita establecer los valores para la parte real y la parte imaginaria del número complejo. Además, la clase debe incluir setters y getters para ambas partes, lo que permitirá obtener y modificar esos valores.

La clase debe tener un método ToString, que retorne la representación del número complejo como una cadena, por ejemplo "(2,-3)". También debe contar con un método GetMagnitude, que devuelva la magnitud del número complejo, calculada como la raíz cuadrada de a²+b².

Otro método importante es Add, que permita 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. Finalmente, se debe crear un programa de prueba para verificar que todas estas capacidades funcionen correctamente. Este ejercicio es una excelente forma de practicar la implementación de clases, métodos y operaciones matemáticas en C#.

 Categoría

POO Más sobre Clases

 Ejercicio

Números Complejos

 Objectivo

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.

 Ejemplo Ejercicio C#

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

 Salida

Complex number 1: (2,-3)
Complex number 2: (1,4)
Magnitude of complex number 1: 3.605551275463989
Sum of complex numbers: (3,1)

 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#.

  •  tabla + coffetable + leg

    En este ejercicio de C#, se extiende el ejemplo de las mesas y las mesas de café para agregar una clase llamada "Leg" (Pata). Esta clase debe tener un método denomina...

  •  Catálogo

    En este ejercicio de C#, se debe crear un diagrama de clases y, posteriormente, utilizando Visual Studio, desarrollar un proyecto con las clases correspondientes para...

  •  Número aleatorio

    En este ejercicio de C#, se debe crear una clase llamada RandomNumber que contenga tres métodos estáticos. El primero de estos métodos, GetFloat, debe d...

  •  Texto a HTML

    En este ejercicio de C#, se debe crear una clase llamada TextToHTML, que debe ser capaz de convertir varios textos ingresados por el usuario en una secuencia d...

  •  Clase ScreenText

    En este ejercicio de C#, se debe crear una clase llamada ScreenText, que se encargará de mostrar un texto en las coordenadas especificadas de la pantalla. La c...

  •  Clase ComplexNumber mejorada

    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 d...