예제 #1
0
        /// <summary>
        /// Devuelve una nueva instancia de Complejo representando al complejo que se obtiene de dividir a este por el complejo dado como parametro.
        /// </summary>
        /// <param name="pOtroComplejo">Numero complejo con el que se va a dividir.</param>
        /// <returns>Devuelve un nuevo Complejo.</returns>
        public Complejo DividirPor(Complejo pOtroComplejo)
        {
            double a = this.Real;
            double b = this.Imaginario;
            double c = pOtroComplejo.Real;
            double d = pOtroComplejo.Imaginario;

            return(new Complejo((this.Real * pOtroComplejo.Real + this.Imaginario * pOtroComplejo.Imaginario) / (Math.Pow(pOtroComplejo.Real, 2) + Math.Pow(pOtroComplejo.Imaginario, 2)),
                                (this.Imaginario * pOtroComplejo.Real - this.Real * pOtroComplejo.Imaginario) / (Math.Pow(pOtroComplejo.Real, 2) + Math.Pow(pOtroComplejo.Imaginario, 2))));
        }
예제 #2
0
 /// <summary>
 /// Permite conocer si un numero complejo es igual a otro numero complejo
 /// </summary>
 /// <param name="pOtroComplejo"> Numero complejo con el cual comparar</param>
 /// <returns>true (es igual), false (no es igual)</returns>
 public bool EsIgual(Complejo pOtroComplejo)
 {
     if (this.Imaginario == pOtroComplejo.Imaginario && this.Real == pOtroComplejo.Real)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #3
0
        /// <summary>
        /// Permite dividir dos numeros complejos
        /// </summary>
        /// <param name="pOtroComplejo">Numero complejo que divide</param>
        /// <returns>Nuevo complejo con el resultado de la division</returns>
        public Complejo DividirPor(Complejo pOtroComplejo)
        {
            //Formula division complejos: (A + Bi) / (C + Di) = ( (A*C + B*D) / (C^2 + D^2) ) + ( (B*C - A*D) / (C^2+D^2) )

            if (pOtroComplejo.Real == 0 && pOtroComplejo.Imaginario == 0)
            {
                throw new System.ArgumentException("No se puede dividir por 0.");
            }
            else
            {
                return(Complejo.Crear((((this.Real * pOtroComplejo.Real) + (this.Imaginario * pOtroComplejo.Imaginario)) / (Math.Pow(pOtroComplejo.Imaginario, 2) + Math.Pow(pOtroComplejo.Real, 2))), (((this.Imaginario * pOtroComplejo.Real) - (this.Real * pOtroComplejo.Imaginario)) / (Math.Pow(pOtroComplejo.Imaginario, 2) + Math.Pow(pOtroComplejo.Real, 2)))));
            }
        }
예제 #4
0
        /// <summary>
        /// Permite multiplicar dos numeros complejos
        /// </summary>
        /// <param name="pOtroComplejo">Numero complejo que multiplica</param>
        /// <returns>Nuevo complejo con el resultado de la multiplicacion</returns>
        public Complejo MultiplicarPor(Complejo pOtroComplejo)
        {
            //Formula multiplicacion complejos: (A + Bi) * (C + Di) = (A*C-B*D) + (A*D+BC)i

            return(Complejo.Crear((this.Real * pOtroComplejo.Real) - (this.Real * pOtroComplejo.Imaginario), ((this.Real * pOtroComplejo.Imaginario) + (this.Imaginario * pOtroComplejo.Real))));
        }
예제 #5
0
 /// <summary>
 /// Permite restar dos numeros complejos
 /// </summary>
 /// <param name="pOtroComplejo"> Numero complejo a resta</param>
 /// <returns>Nuevo complejo con el resultado de la resta</returns>
 public Complejo Restar(Complejo pOtroComplejo)
 {
     return(Complejo.Crear(this.Real - pOtroComplejo.Real, this.Imaginario - pOtroComplejo.Imaginario));
 }
예제 #6
0
 /// <summary>
 /// Permite sumar dos numeros complejos
 /// </summary>
 /// <param name="pOtroComplejo"> Numero complejo a sumar</param>
 /// <returns>Nuevo complejo con el resultado de la suma</returns>
 public Complejo Sumar(Complejo pOtroComplejo)
 {
     return(Complejo.Crear(this.Real + pOtroComplejo.Real, this.Imaginario + pOtroComplejo.Imaginario));
 }
예제 #7
0
 /// <summary>
 /// Devuelve true si el numero complejo es igual a otro. De lo contrario, devuelve false.
 /// </summary>
 /// <param name="pOtroComplejo">Complejo con el que se compara.</param>
 public bool EsIgual(Complejo pOtroComplejo)
 {
     return(this.Real == pOtroComplejo.Real && this.Imaginario == pOtroComplejo.Imaginario);
 }
예제 #8
0
 /// <summary>
 /// Devuelve una nueva instancia de Complejo representando al complejo que se obtiene de multiplicar a este por el complejo dado como parametro.
 /// </summary>
 /// <param name="pOtroComplejo">Numero complejo con el que se va a multiplicar.</param>
 /// <returns>Devuelve un nuevo Complejo.</returns>
 public Complejo MultiplicarPor(Complejo pOtroComplejo)
 {
     return(new Complejo(this.Real * pOtroComplejo.Real - this.Imaginario * pOtroComplejo.Imaginario,
                         this.Real * pOtroComplejo.Imaginario + this.Imaginario * pOtroComplejo.Real));
 }