Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<fstream>
- using namespace std;
- class Complex {
- public:
- Complex(int a, int b);
- Complex();
- friend ostream&operator<<(ostream&os, const Complex & z);
- friend istream&operator>>(istream&is, Complex & z);
- Complex operator+(const Complex&z);
- Complex operator-(const Complex&z);
- Complex operator*(const Complex&z);
- Complex operator/(const Complex&z);
- private:
- int a;
- int b;
- };
- Complex::Complex(int a, int b) {
- this->a = a;
- this->b = b;
- };
- Complex::Complex() {
- this->a = 0;
- this->b = 0;
- };
- Complex Complex::operator+(const Complex&z) {
- Complex zz;
- zz.a = a + z.a;
- zz.b = b + z.b;
- return zz;
- }
- Complex Complex::operator*(const Complex&z) {
- Complex zz;
- //(a+ib)(c+id)=ac+iad+ibc-bd=(ac-bd)+i(ad+bc)
- zz.a =(a*z.a)-(b*z.b) ;
- zz.b = (a*z.b)+(b*z.a);
- return zz;
- }
- Complex Complex::operator/(const Complex&z) {
- Complex zz;
- //(a+ib)/(c+id)=((a+ib)(c-id))/(c*c+d*d)=(ac+bd)/(c^2+d^2)+i(bc-ad)/(c^2+d^2);
- zz.a = (a*z.a+b*z.b)/(z.a*z.a+z.b*z.b);
- zz.b = (b*z.a-a*z.b)/ (z.a*z.a + z.b*z.b);
- return zz;
- }
- Complex Complex::operator-(const Complex&z) {
- Complex zz;
- zz.a = a - z.a;
- zz.b = b - z.b;
- return zz;
- }
- istream&operator>>(istream&is, Complex & z) {
- cout << "z=a+i*b" << "\nEnter a:";
- is >> z.a;
- cout << "\nEnter b:";
- is >> z.b;
- system("cls");
- return is;
- };
- ostream&operator<<(ostream&os, const Complex & z) {
- if (z.b > 0) {
- os << z.a << "+" << z.b<<"i"<< endl;
- }
- else {
- os << z.a << "-" << abs(z.b) <<"i"<< endl;
- }
- return os;
- };
- int main()
- {
- Complex z1;
- Complex z2;
- cin >> z1;
- cin >> z2;
- cout << z1;
- cout << z2;
- Complex z3 = z1 + z2;
- cout <<"+ "<< z3;
- z3 = z1 - z2;
- cout <<"- "<< z3;
- z3 = z1 * z2;
- cout <<"* "<< z3;
- z3 = z1 / z2;
- cout <<"/ "<< z3;
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement