/// <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)))); }
/// <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); } }
/// <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))))); } }
/// <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)))); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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)); }