CMPLX.cpp_



//-------------------------------------------------------------------------
// Programa: 	Clase complejo
//
//
// complejos de una forma sencilla
//
//	Puede utilizarse para ser llamada con expresiones como
//	c = a(5,6) OPR b(7,2)
//	en donde a,b,c deben ser declarados como complejo
//                   complejo a, b, c;
//	y OPR puede ser: (+), (-), (*), (/).
//
// 
//  complejo a(5,5),b(10,20),c;
//  cout << "La suma \n"; c=a+b;    c.imprime();
//  cout << "La resta\n"; c=a-b;    c.imprime();
//  cout << "El producto\n"; c=a*b; c.imprime();
//  cout << "La division\n"; c=a/b; c.imprime();
//
//-------------------------------------------------------------------------



#include <iostream.h>

class complejo {
 float r,i;
  public:
  complejo (float x=0,float y=0) { r=x;i=y; }
  complejo operator +(complejo x);
  complejo operator -(complejo x);
  complejo operator *(complejo x);
  complejo operator /(complejo x);
  void imprime ();
};

complejo complejo:: operator + (complejo x) {
	return complejo(r+x.r,i+x.i);
}

complejo complejo:: operator - (complejo x) {
	return complejo(r-x.r,i-x.i);
}

complejo complejo:: operator * (complejo x) {
	return complejo(r*x.r - i*x.i, r*x.i+i*x.r);
}

complejo complejo:: operator / (complejo x) {
	float t=x.r*x.r+x.i*x.i;
	return complejo((r*x.r+i*x.i)/t,(i*x.r - r*x.i)/t);
}

void complejo::imprime() {
  cout << "Parte real " << r << "\nparte imaginaria ";
  cout << i << "\n" ;
}

void main () {
  complejo a(5,5),b(10,20),c;
  cout << "La suma \n";
  c=a+b;
  c.imprime();
  cout << "La resta\n";
  c=a-b;
  c.imprime();
  cout << "El producto\n";
  c=a*b;
  c.imprime();
  cout << "La division\n";
  c=a/b;
  c.imprime();
}