martes, 15 de septiembre de 2015

Ejercicio 4 Clases y Constructores

Cree una clase llamada complejo para realizar aritmética con numeros complejos. Escriba un programa controlador para probar sus clases.
Los numeros complejos tienen la forma:
parteReal + parteImaginaria * i  donde i es   raiz cuadrada de -1 (sqrt(-1))
Utilice variables double para representar datos de tipo private de una clase. Proporcione funciones miembro de tipo public para cada uno de los siguientes:
a)Suma de dos numeros complejos: las parte real se suman juntas y la parte imaginarias se suman juntas.
b)Resta de dos numeros complejos: la parte real del operando derecho se resta de la parte real del operando izquierdo, y la parte imaginaria del operando derecho se resta de la parte imaginaria del operando izquierdo.
c)Impresión de numerous complejos de la forma (a,b), en donde a es la parte real y b es la parte imaginaria.
Problema propuesto del libro C/C++ y Java Como Programar Cuarta Edición Deitel-Deitel  ejercicio 16.5 pagina 565.

Codificacion CodeBlocks

#include <iostream>
#include <iomanip>
using namespace std;
class Complejo
{
private:
    double parteReal;
    double parteImaginaria;
public:
  Complejo(double =1 , double =1);
  void estComplejo(double, double);
  double obtenerParteReal();
  double obtenerParteImaginaria();
  Complejo obtenerNumeroComplejo();
  Complejo sumaComplejos(Complejo,Complejo);
  Complejo restaComplejos(Complejo,Complejo);
  void imprimeComplejo(Complejo);
};
Complejo::Complejo(double real, double imag)
{
    parteReal=real;
    parteImaginaria=imag;
}
void Complejo::estComplejo(double re, double ima)
{
    parteReal=re;
    parteImaginaria=ima;
}
double Complejo::obtenerParteReal()
{
    return parteReal;
}
double Complejo::obtenerParteImaginaria()
{
    return parteImaginaria;
}
Complejo obtenerNumeroComplejo(Complejo numC)
{
    return numC;
}
Complejo Complejo::sumaComplejos(Complejo c1,Complejo c2)
{
    Complejo resul;
    double pR1,pR2,pI1,pI2,sR,sI;
    pR1=c1.obtenerParteReal();
    pR2=c2.obtenerParteReal();
    pI1=c1.obtenerParteImaginaria();
    pI2=c2.obtenerParteImaginaria();
    sR=pR1+pR2;
    sI=pI1+pI2;
    resul.estComplejo(sR,sI);
    return resul;
}
Complejo Complejo::restaComplejos(Complejo c1,Complejo c2)
{
    Complejo resul;
    double pR1,pR2,pI1,pI2,rR,rI;
    pR1=c1.obtenerParteReal();
    pR2=c2.obtenerParteReal();
    pI1=c1.obtenerParteImaginaria();
    pI2=c2.obtenerParteImaginaria();
    rR=pR1-pR2;
    rI=pI1-pI2;
    resul.estComplejo(rR,rI);
    return resul;
}
void Complejo::imprimeComplejo(Complejo re)
{
    cout<<re.obtenerParteReal()<<" + "<<re.obtenerParteImaginaria()<<"i"<<endl;
}

int main()
{
    Complejo  numC1(8,2),numC2,resC;
    resC=resC.sumaComplejos(numC1,numC2);
    cout<<"El resultado de la suma de los numeros complejos\n";
    cout<<setw(5)<<numC1.obtenerParteReal()<<" + "<<numC1.obtenerParteImaginaria()<<"i"<<endl;
    cout<<setw(5)<<numC2.obtenerParteReal()<<" + "<<numC2.obtenerParteImaginaria()<<"i"<<endl;
    cout<<setw(4)<<"=";
    resC.imprimeComplejo(resC);
    resC=resC.restaComplejos(numC1,numC2);
    cout<<"\n\nEl resultado de la resta de los numeros complejos\n";
    cout<<setw(5)<<numC1.obtenerParteReal()<<" + "<<numC1.obtenerParteImaginaria()<<"i"<<endl;
    cout<<setw(5)<<numC2.obtenerParteReal()<<" + "<<numC2.obtenerParteImaginaria()<<"i"<<endl;
    cout<<setw(4)<<"=";
    resC.imprimeComplejo(resC);

    return 0;
}

No hay comentarios:

Publicar un comentario