-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomplex.cpp
More file actions
146 lines (140 loc) · 2.91 KB
/
complex.cpp
File metadata and controls
146 lines (140 loc) · 2.91 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include<iostream>
#include<cmath>
using namespace std;
//class classname
//{
//
//};
class ComplexNumber
{
//data members
private:
double real,imag;
//member methods
//construtor
//implicitly
public:
ComplexNumber()
{
cout<<"Default Constructor"<<endl;
real=imag=0;
}
//overloading
ComplexNumber(double r,double i)
{
cout<<"Parametrized Constructor"<<endl;
real=r;
imag=i;
}
void display()
{
if(imag>=0)
{
cout<<real<<"+j"<<imag<<endl;
}
else
{
cout<<real<<"-j"<<-imag<<endl;
}
}
void display2()
{
cout<<real<<endl;
}
//function declaration and defination
ComplexNumber add(ComplexNumber c1,ComplexNumber c2)
{
ComplexNumber result;
result.real=c1.real+c2.real;
result.imag=c1.imag+c2.imag;
return result;
}
ComplexNumber add(ComplexNumber c1)
{
ComplexNumber result;
result.real=c1.real+this->real;
result.imag=c1.imag+this->imag;
return result;
}
ComplexNumber sub(ComplexNumber c1,ComplexNumber c2)
{
ComplexNumber result;
result.real=c1.real-c2.real;
result.imag=c1.imag-c2.imag;
return result;
}
ComplexNumber mul(ComplexNumber c1,ComplexNumber c2)
{
ComplexNumber result;
result.real=(c1.real*c2.real - c1.imag*c2.imag);
result.imag=(c1.real*c2.imag+c1.imag*c2.real);
return result;
}
ComplexNumber div(ComplexNumber c1,ComplexNumber c2)
{
ComplexNumber result;
result.real=(((c1.real*c2.real + c1.imag*c2.imag)/(pow(c2.real,2)+ pow(c2.imag,2))));
result.imag=((c1.imag*c2.real - c1.real*c2.imag)/(pow(c2.real,2)+ pow(c2.imag,2)));
return result;
}
ComplexNumber con(ComplexNumber c1)
{
ComplexNumber result;
result.real=c1.real;
result.imag=-c1.imag;
return result;
}
ComplexNumber mag(ComplexNumber c1)
{
ComplexNumber result;
result.real=pow(((c1.real*c1.real)+(c1.imag*c1.imag)),0.5);
return result;
}
ComplexNumber pha(ComplexNumber c1)
{
ComplexNumber result;
result.real=tan(c1.imag/c1.real);
return result;
}
// ComplexNumber sub(ComplexNumber)
// ComplexNumber mul(ComplexNumber)
// ComplexNumber div(ComplexNumber)
// ComplexNumber conj(ComplexNumber)
// double mag(ComplexNumber)
// double phase(ComplexNumber)
};
int main()
{
//object holds memory
ComplexNumber obj1(3,4);
obj1.display();
ComplexNumber obj2(10,-20);
obj2.display();
ComplexNumber res;
// calling add method
res=res.add(obj1,obj2);
cout<<"Function with 2 Paratmeters"<<endl;
res.display();
// ComplexNumber add(ComplexNumber c1)
res= obj1.add(obj2);
cout<<"Function with 1 Paratmeters"<<endl;
res.display();
// calling sub method
res=res.sub(obj1,obj2);
res.display();
// calling mul method
res=res.mul(obj1,obj2);
res.display();
// calling div method
res=res.div(obj1,obj2);
res.display();
// calling con method
res=res.con(obj1);
res.display();
//calling mag method
res=res.mag(obj1);
res.display2();
//calling phase method
res=res.pha(obj1);
res.display2();
}