Corrig e TD5: Lelong J Er Ome 3 Janvier 2006
Corrig e TD5: Lelong J Er Ome 3 Janvier 2006
LELONG Jérôme
3 janvier 2006
#include<iostream>
#include <cmath>
#include "Complex.H"
Complex::Complex(double x, double y)
{
real = x;
img = y;
}
1
Complex Complex::inverse() const
{
return( real/this->module() );
}
return *this;
}
2
Complex operator*(const Complex &c1, double x)
{
return( Complex(c1.real * x, c1.img * x ) );
}
#ifndef __COMPLEX_H
#define __COMPLEX_H
#include <iostream>
class Complex{
double real;
3
double img;
public:
Complex(double=0, double=0);
Complex(const Complex &c);
double module() const;
double arg() const;
Complex conj() const;
double Real() const {return real;}
double Img() const {return img;}
double& Real() {return real;}
double& Img() {return img;}
Complex inverse() const;
Complex& operator=(const Complex&);
// fonctions amies
friend bool operator==(const Complex&, const Complex&);
#endif
#include<iostream>
#include <cmath>
#include "Complex.H"
int main()
4
{
Complex Z1 = Complex(1);
Complex Z2 = Complex(0,1);
Complex Z3 = Complex(1/2,sin(M_PI/3));
Complex Z4 = Complex(cos(M_PI/4),sin(M_PI/4));
Complex Z = Complex((Z1+Z2)*sqrt(2));
if( Z == Z4)
cout << "true" << endl;
else
cout << "false" << endl;
Complex Z5;
cout << Z5 << endl;
Z5.Img() = 3;
cout << Z5 << endl;
exit(0);
}