Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Recetas.Ch01
- {
- public class NumeroComplejo
- {
- public int Real
- {
- get;
- set;
- }
- public int Imaginario
- {
- get;
- set;
- }
- public NumeroComplejo(int real, int imaginario)
- {
- Real = real;
- Imaginario = imaginario;
- }
- ///<summary>
- /// Adición de dos números complejos.
- ///</summary>
- public static NumeroComplejo operator +(NumeroComplejo c1, NumeroComplejo c2)
- {
- return new NumeroComplejo( c1.Real + c2.Real, c1.Imaginario + c2.Imaginario);
- }
- ///<summary>
- /// Sustracción de dos números complejos.
- ///</summary>
- public static NumeroComplejo operator -(NumeroComplejo c1, NumeroComplejo c2)
- {
- return new NumeroComplejo( c1.Real - c2.Real, c1.Imaginario - c2.Imaginario);
- }
- ///<summary>
- /// Multiplica dos números complejos.
- ///</summary>
- public static NumeroComplejo operator *(NumeroComplejo c1, NumeroComplejo c2)
- {
- // Multiplicamos aplicando el método FOIL (español, PEIU: Primeros, Exteriores, Interiores, Últimos)
- int firstTerms = c1.Real * c2.Real;
- int outsideTerms = c1.Real * c2.Imaginario;
- int insideTerms = c1.Imaginario * c2.Real;
- int lastTerms = c1.Imaginario * c2.Imaginario * -1;
- return new NumeroComplejo(firstTerms + lastTerms, outsideTerms + insideTerms);
- }
- ///<summary>
- /// Divide dos números complejos.
- ///</summary>
- public static NumeroComplejo operator /(NumeroComplejo c1, NumeroComplejo c2)
- {
- // Conjugado:
- NumeroComplejo tmp = new NumeroComplejo(c2.Real, Convert.ToInt32(Math.Abs(c2.Imaginario)));
- return new NumeroComplejo((c1*tmp).Real, (c2*tmp).Imaginario);
- }
- ///<summary>
- /// Sobreescribe el método ToString para representar números complejos.
- ///</summary>
- public override string ToString()
- {
- return (String.Format("{0} + {1}i", Real, Imaginario));
- }
- public static void Main()
- {
- // Creación de dos instancias de NumeroComplejo
- NumeroComplejo c1 = new NumeroComplejo(3, 7);
- NumeroComplejo c2 = new NumeroComplejo(11, 13);
- // Operaciones aritméticas de números complejos
- NumeroComplejo adicion = c1 + c2;
- NumeroComplejo sustraccion = c1 - c2;
- NumeroComplejo cociente = c1 / c2;
- NumeroComplejo producto = c1 * c2;
- // Impresión de resultados operaciones
- Console.WriteLine("Primer número complejo: {0}", c1);
- Console.WriteLine("Segundo número complejo: {0}", c2);
- Console.WriteLine("Adición: {0}", adicion);
- Console.WriteLine("Sustracción: {0}", sustraccion);
- Console.WriteLine("Producto: {0}", producto);
- Console.WriteLine("Cociente: {0}", cociente);
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement