Sistemas numéricos avanzados - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para representar números complejos, que consisten en una parte real y una parte imaginaria. Este ejercicio es perfecto para practicar la definición de clases, la implementación de métodos 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, implementación de métodos 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 e implementación de métodos, 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

Sistemas Numéricos Avanzados

 Objectivo

Desarrolla un programa Python para representar números complejos, que constan de una parte real y una parte imaginaria. Para un número complejo como \( a + bi \) (como 2 - 3i), \( a \) es la parte real y \( b \) es la parte imaginaria.

1. Crea una clase llamada `ComplexNumber` que incluya:
- Un constructor para inicializar las partes real e imaginaria.
- Setters y getters para las partes real e imaginaria.
- Un método `__str__()` que devuelve el número complejo como una cadena en el formato "(a, b)".
- Un método `get_magnitude()` que calcula y devuelve la magnitud del número complejo utilizando la fórmula \( \sqrt{a^2 + b^2} \).
- Un método `add()` para sumar dos números complejos, sumando sus partes real e imaginaria por separado.

2. Luego, cree un programa de prueba para verificar la funcionalidad de la clase `ComplexNumber` creando instancias de la clase, probando los métodos toString, get_magnitude y add, y mostrando los resultados.

 Ejemplo de ejercicio de Python

 Copiar código Python
import math

class ComplexNumber:
    def __init__(self, real, imaginary):
        """
        Constructor that initializes the real and imaginary parts of the complex number.
        """
        self.real = real
        self.imaginary = imaginary

    # Setters and getters for the real part
    def set_real(self, real):
        self.real = real

    def get_real(self):
        return self.real

    # Setters and getters for the imaginary part
    def set_imaginary(self, imaginary):
        self.imaginary = imaginary

    def get_imaginary(self):
        return self.imaginary

    # __str__() method to represent the complex number as a string
    def __str__(self):
        return f"({self.real}, {self.imaginary})"
    
    # Method to calculate and return the magnitude of the complex number
    def get_magnitude(self):
        return math.sqrt(self.real**2 + self.imaginary**2)
    
    # Method to add two complex numbers
    def add(self, other):
        real_sum = self.real + other.get_real()
        imaginary_sum = self.imaginary + other.get_imaginary()
        return ComplexNumber(real_sum, imaginary_sum)

# Test program
if __name__ == "__main__":
    # Create two complex numbers
    c1 = ComplexNumber(2, -3)  # Complex number 2 - 3i
    c2 = ComplexNumber(1, 4)   # Complex number 1 + 4i

    # Display the complex numbers as strings
    print(f"Complex Number 1: {c1}")
    print(f"Complex Number 2: {c2}")

    # Display the magnitude of the complex numbers
    print(f"Magnitude of Complex Number 1: {c1.get_magnitude()}")
    print(f"Magnitude of Complex Number 2: {c2.get_magnitude()}")

    # Add the two complex numbers
    sum_result = c1.add(c2)
    print(f"Sum of Complex Number 1 and 2: {sum_result}")

 Output

Complex Number 1: (2, -3)
Complex Number 2: (1, 4)
Magnitude of Complex Number 1: 3.605551275463989
Magnitude of Complex Number 2: 4.123105625617661
Sum of Complex Number 1 and 2: (3, 1)

 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.

  •  Clase Mesa, mesa de café y patas

    En este ejercicio, desarrollarás un proyecto en Python basado en el ejemplo de mesas y mesas de café, pero ahora introducirás una nueva clase llamada "Leg". Este e...

  •  Clase Catálogo

    En este ejercicio, desarrollarás un diagrama de clases en Python para una utilidad de catálogo que almacena detalles sobre archivos de música, películas y programas d...

  •  Generación aleatoria de valor

    En este ejercicio, desarrollarás un proyecto en Python con una clase llamada RandomNumber que incluye tres métodos estáticos. Este ejercicio es perfecto para p...

  •  Convertir texto a HTML

    En este ejercicio, desarrollarás una clase en Python llamada "TextToHTML" que puede convertir múltiples textos ingresados por el usuario en una secuencia de líneas HT...

  •  Clase Texto en pantalla

    En este ejercicio, desarrollarás una clase en Python llamada "DisplayText" que te permitirá mostrar texto en coordenadas específicas en la pantalla. Este ejercicio...

  •  Clase ComplexNumber mejorada

    En este ejercicio, desarrollarás un programa en Python para mejorar la clase "ComplexNumber" sobrecargando los operadores de suma (+) y resta (-). Este ejercicio...