#include
#include
using namespace std;
struct Complexe{
float re, im;
};
Complexe init_comp(float re, float im) {
Complexe c;
c.re = re;
c.im = im;
return c;
}
void afficher_comp(Complexe C) {
cout << C.re << " + i " << C.im << endl;
}
Complexe add_comp(Complexe C1, Complexe C2) {
return init_comp(C1.re + C2.re, C1.im + C2.im);
}
Complexe mult_comp(Complexe C1, Complexe C2) {
return init_comp(C1.re * C2.re - C1.im * C2.im, C1.re * C2.im + C1.im * C2.re);
}
Complexe mult_scal_comp(float s, Complexe C) {
return init_comp(s * C.re, s * C.im);
}
Complexe sqrt_comp(float r) {
if (r >=0)
return init_comp(sqrt(r), 0);
else
return init_comp(0, -sqrt(-r));
}
float module(Complexe C) {
return sqrt(C.re * C.re + C.im * C.im);
}
int main(int argc, char **argv) {
Complexe z1, z2;
z1 = init_comp(1, 2);
z2 = init_comp(2, 5);
afficher_comp(add_comp(z1, z2));
afficher_comp(mult_comp(z1, z2));
afficher_comp(mult_scal_comp(3, z2));
afficher_comp(sqrt_comp(-9));
cout << module(z1) << endl;
return 0;
}