Clase ComplexNumber mejorada - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para mejorar la clase "ComplexNumber" sobrecargando los operadores de suma (+) y resta (-). Este ejercicio es perfecto para practicar la definición de clases, la sobrecarga de operadores y la programación orientada a objetos en Python. Al implementar esta clase, obtendrás experiencia práctica en el manejo de definiciones de clases, sobrecarga de operadores y programación orientada a objetos en Python. Este ejercicio no solo refuerza tu comprensión de la programación orientada a objetos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar las interacciones con el usuario. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con definiciones de clases y sobrecarga de operadores, aprenderás a estructurar tu código de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la legibilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

POO Dominando clases en Python

 Ejercicio

Clase Complexnumber Mejorada

 Objectivo

Desarrolle un programa Python para mejorar la clase "ComplexNumber" sobrecargando los operadores de suma (+) y resta (-). Los operadores sobrecargados deberían permitirle sumar y restar números complejos directamente.

 Ejemplo de ejercicio de Python

 Copiar código Python
import math

class ComplexNumber:
    def __init__(self, real, imaginary):
        """
        Initializes a ComplexNumber object with real and imaginary parts.

        Parameters:
            real (float): The real part of the complex number.
            imaginary (float): The imaginary part of the complex number.
        """
        self.real = real
        self.imaginary = imaginary

    # Getter for the real part
    def get_real(self):
        return self.real

    # Setter for the real part
    def set_real(self, real):
        self.real = real

    # Getter for the imaginary part
    def get_imaginary(self):
        return self.imaginary

    # Setter for the imaginary part
    def set_imaginary(self, imaginary):
        self.imaginary = imaginary

    def __str__(self):
        """
        Returns the complex number in the format (a, b).
        """
        return f"({self.real}, {self.imaginary})"

    def get_magnitude(self):
        """
        Returns the magnitude of the complex number using the formula: sqrt(a^2 + b^2).
        """
        return math.sqrt(self.real ** 2 + self.imaginary ** 2)

    def add(self, other):
        """
        Adds two complex numbers together.

        Parameters:
            other (ComplexNumber): The other complex number to add.

        Returns:
            ComplexNumber: A new complex number that is the sum of the two.
        """
        real_part = self.real + other.real
        imaginary_part = self.imaginary + other.imaginary
        return ComplexNumber(real_part, imaginary_part)

    def subtract(self, other):
        """
        Subtracts another complex number from this one.

        Parameters:
            other (ComplexNumber): The complex number to subtract.

        Returns:
            ComplexNumber: A new complex number that is the result of the subtraction.
        """
        real_part = self.real - other.real
        imaginary_part = self.imaginary - other.imaginary
        return ComplexNumber(real_part, imaginary_part)

    # Overloading the addition operator (+)
    def __add__(self, other):
        """
        Overloads the + operator to add two complex numbers.
        """
        return self.add(other)

    # Overloading the subtraction operator (-)
    def __sub__(self, other):
        """
        Overloads the - operator to subtract two complex numbers.
        """
        return self.subtract(other)


# Test program to demonstrate the functionality of the overloaded operators
def main():
    # Create two complex numbers
    complex1 = ComplexNumber(2, 3)  # 2 + 3i
    complex2 = ComplexNumber(1, 1)  # 1 + 1i

    # Display the complex numbers
    print(f"Complex 1: {complex1}")
    print(f"Complex 2: {complex2}")

    # Add the two complex numbers using the overloaded + operator
    result_add = complex1 + complex2
    print(f"Addition Result: {result_add}")

    # Subtract the two complex numbers using the overloaded - operator
    result_subtract = complex1 - complex2
    print(f"Subtraction Result: {result_subtract}")

    # Display magnitudes
    print(f"Magnitude of Complex 1: {complex1.get_magnitude()}")
    print(f"Magnitude of Complex 2: {complex2.get_magnitude()}")


# Run the test program
if __name__ == "__main__":
    main()

 Output

Complex 1: (2, 3)
Complex 2: (1, 1)
Addition Result: (3, 4)
Subtraction Result: (1, 2)
Magnitude of Complex 1: 3.605551275463989
Magnitude of Complex 2: 1.4142135623730951

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de POO Dominando clases en Python

¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. 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 Python.

  •  Coordenadas 3D

    En este ejercicio, desarrollarás una clase en Python llamada "Point3D" que representará un punto en el espacio tridimensional con coordenadas X, Y y Z. Este ejerci...

  •  Catálogo y Navegación

    En este ejercicio, desarrollarás un programa en Python para mejorar la aplicación de Catálogo, donde la función "Main" muestra un menú que permite a los usuarios ingr...

  •  Matriz de objetos: tablas

    En este ejercicio, desarrollarás una clase en Python llamada "Table". La clase debe incluir un constructor para inicializar el ancho y la altura de la mesa. También d...

  •  Clase Hogar

    En este ejercicio, desarrollarás un programa en Python con las siguientes clases: - **House**: Crea una clase llamada "House" con un atributo para "area". Incluye ...

  •  Array de tablas

    En este ejercicio, desarrollarás un proyecto en Python llamado "Tables2", ampliando el proyecto "Tables". En este proyecto, define una clase llamada "CoffeeTable" que...

  •  Cifrador y Descifrador

    En este ejercicio, desarrollarás una clase en Python llamada "Encryptor" para la encriptación y desencriptación de texto. Este ejercicio es perfecto para pract...