#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
/* 2. Komplexe Zahlen
Es ist eine Klasse 'complex' mit den privaten Daten real und imag zu definieren.
Eine komplexe Zahl soll
* eingelesen und angezeigt werden koennen,
* zu einer anderen addiert werden können,
* und es soll der Betrag einer komplexen Zahl berechnet werden können!
Testen Sie alle Methoden und Funktionen!
* Definieren Sie 'setze', 'liefer_r' und 'liefer_i' als Methoden zum Zugriff auf die privaten Daten
* und 'ein_global' und 'aus_global' als globale Funktionen, die diese Methoden aufrufen!*/
class complextyp
{ private: double real, imag;
  public: void lies();
          void zeig();
          complextyp plus( complextyp);
          double betrag();
          void setze( double r, double i){ real= r; imag= i; }
          double liefer_r(){ return real; }
          double liefer_i(){ return imag; }
};
void aus_global( char*, complextyp);
int main()//-----------------------------------------------------------------
{ complextyp u, v, w;

   v.setze( 3, 4);    printf(" v = %lf + i*%lf\n", v.liefer_r(), v.liefer_i() );
   w.setze( 2.5, 5.5);printf(" w = %lf + i*%lf\n", w.liefer_r(), w.liefer_i() );

   u= v.plus( w);//printf(" u = v + w = %lf + i*%lf\n", u.liefer_r(), u.liefer_i() );
                // u.zeig();
   aus_global(" u= v + w = ", u);
   aus_global(" v= ", v);
   aus_global(" w= ", w);
   printf("\n Betrag von u= %lf\n", u.betrag() );
   printf("\n Betrag von v= %lf\n", v.betrag() );
   printf("\n Betrag von w= %lf\n", w.betrag() );
   printf("\n");system("PAUSE"); return 0;
} //------------------------------------------ Elementfunktionen
void complextyp::lies(){}
void complextyp::zeig()
{ printf(" %lf + i*%lf ", real, imag );
}
complextyp complextyp::plus( complextyp b )
{ complextyp lokal;
  lokal.real= real + b.real;
  lokal.imag= imag + b.imag;
  return lokal;
}
double complextyp::betrag()
{  return sqrt( real*real + imag*imag);
}//------------------------------------------------ globale Funktionen
void aus_global( char* text, complextyp c)
{ printf("\n %s %lf + i* %lf\n", text, c.liefer_r(), c.liefer_i() );
}
