sábado, 19 de septiembre de 2015

Ejercicio 7 con sobrecarga de operadores

Considere la clase complejo que permita operaciones de números complejos suma, resta, multiplicacion, asignacion, igual o diferente, utilizando sobrecarga de operadores.

Codificación CodeBlocks

#include <iostream>
using namespace std;
class Complejo
{
private:
    double real;
    double imaginario;
public:
    Complejo (double =1.0, double =1.0);
    Complejo operator+(const Complejo &)const;
    Complejo operator-(const Complejo &)const;
    Complejo operator*(const Complejo &)const;
    const Complejo &operator=(const Complejo &);
    int operator==(const Complejo &)const;
    void mostrarComplejo()const;
};
Complejo::Complejo(double r, double ima)
{
    real=r;
    imaginario=ima;
}
Complejo Complejo::operator+ (const Complejo &c1)const
{
    double cr,ci;
    cr=real + c1.real;
    ci=imaginario+c1.imaginario;
    return Complejo(cr,ci);
}
Complejo Complejo::operator- (const Complejo &c1)const
{
    double cr,ci;
    cr=real - c1.real;
    ci=imaginario - c1.imaginario;
    return Complejo(cr,ci);
}
Complejo Complejo::operator* (const Complejo &c1)const
{
    double cr,ci;
    cr=(real * c1.real )- (imaginario*c1.imaginario) ;
    ci=(real*c1.imaginario) + (c1.real *imaginario);
    return Complejo(cr,ci);
}
const Complejo& Complejo:: operator=(const Complejo &c1)
{
    real=c1.real;
    imaginario=c1.imaginario;
    return *this;
}
int Complejo::operator==(const Complejo &c1)const
{
    if (real==c1.real && imaginario==c1.imaginario)
        return 1;
    else 0;
}
void Complejo::mostrarComplejo()const
{
    cout<<"( "<<real<<" , "<<imaginario<<" ) "<<endl;
}
int main()
{
    int b;
    Complejo x,y(2.0,8.0),z(5.0,3.0);
    cout<<"\nComplejo Y : ";
    y.mostrarComplejo();
    cout<<"\nComplejo Z : ";
    z.mostrarComplejo();
    x=y+z;
    cout<<"\nLa suma de los complejos Y + Z : ";
    x.mostrarComplejo();
    x=y-z;
    cout<<"\nLa resta de los complejos Y - Z : ";
    x.mostrarComplejo();
    x=y*z;
    cout<<"\nLa multiplicacion de los complejos Y * Z: ";
    x.mostrarComplejo();
    b=y==z;
    if(b==1)
        cout<<"\nEl numero Complejo Y es igual numero Complejo Z\n";
    else
        cout<<"\nEl numero Complejo Y es diferente al numero Complejo Z\n";

    return 0;
}

No hay comentarios:

Publicar un comentario