forked from Aleksandr505/LabsUniversity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlab11.cpp
100 lines (85 loc) · 1.44 KB
/
lab11.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <cstdio>
#include<iostream>
#include <cmath>
using namespace std;
class FatherCNum {
public:
double Re;
double Im;
};
class CNum : public FatherCNum {
public:
CNum operator+(CNum y) {
CNum z;
z.Re = Re + y.Re;
z.Im = Im + y.Im;
return z;
}
CNum operator+(double y) {
CNum z;
z.Re = Re + y;
return z;
}
CNum operator-(CNum y) {
CNum z;
z.Re = Re - y.Re;
z.Im = Im - y.Im;
return z;
}
CNum operator-(double y) {
CNum z;
z.Re = Re - y;
return z;
}
CNum operator*(CNum y) {
CNum z;
z.Re = Re * y.Re;
z.Im = Im * y.Im;
return z;
}
CNum operator*(double y) {
CNum z;
z.Re = Re * y;
return z;
}
CNum operator/(CNum y) {
CNum z;
z.Re = Re / y.Re;
z.Im = Im / y.Im;
return z;
}
CNum operator/(double y) {
CNum z;
z.Re = Re / y;
return z;
}
void operator!() {
Im *= -1;
}
};
void trigView(CNum& z) {
double phi = atan2(z.Im, z.Re);
double r = sqrt(z.Re * z.Re + z.Im * z.Im);
cout << "Z = " << r << "*(cos(" << phi << ") + i*sin(" << phi << "))" << endl;
double testRe = r * cos(phi);
double testIm = r * sin(phi);
cout << "test = " << testRe << " + i*" << testIm << endl;
}
int main() {
CNum z, x, y;
x.Re = 5;
x.Im = 9;
y.Re = 2;
y.Im = 3;
z = x + y;
z = x - y;
z = x * y;
z = x / y;
z = x + 5;
z = x - 5;
z = y * 5;
z = y / 5;
!z;
trigView(z);
return 0;
}