Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Complex
- {
- public:
- Complex(float a, float b)
- {
- _a = a;
- _b = b;
- }
- void out()
- {
- cout << "(" << _a << "," << _b << ")";
- }
- static Complex add(Complex &c1, Complex &c2)
- {
- Complex *c3 = new Complex(c1._a + c2._a, c1._b + c2._b);
- return *c3;
- }
- static Complex sub(Complex &c1, Complex &c2)
- {
- return *(new Complex(c1._a - c2._a, c1._b - c2._b));
- }
- static Complex mul(Complex &c1, Complex &c2)
- {
- return *(new Complex(c1._a * c2._a - c1._b * c2._b, c1._a * c2._b + c1._b * c2._a));
- }
- static Complex div(Complex &c1, Complex &c2)
- {
- float dop = (c2._a * c2._a + c2._b * c2._b);
- return *(new Complex((c1._a * c2._a + c1._b * c2._b)/dop, (c1._b * c2._a - c1._a * c2._b)/dop));
- }
- static bool equ(Complex &c1, Complex &c2)
- {
- return ((c1._a == c2._a) && (c1._b == c2._b));
- }
- Complex conj()
- {
- return *(new Complex(_a, (-1) * _b));
- }
- protected:
- private:
- float _a,_b;
- };
- int main()
- {
- Complex *c1,*c2;
- float a,b;
- cout << "Введите первое число" << endl;
- cout << "Действительная часть: ";
- cin >> a;
- cout << "Мнимая часть: ";
- cin >> b;
- c1 = new Complex(a,b);
- cout << "Введите второе число" << endl;
- cout << "Действительная часть: ";
- cin >> a;
- cout << "Мнимая часть: ";
- cin >> b;
- c2 = new Complex(a,b);
- cout << "Сумма: ";
- Complex dop = Complex::add(*c1,*c2);
- dop.out();
- cout << endl;
- cout << "Разность: ";
- dop = Complex::sub(*c1,*c2);
- dop.out();
- cout << endl;
- cout << "Произведение: ";
- dop = Complex::mul(*c1,*c2);
- dop.out();
- cout << endl;
- cout << "Частное: ";
- dop = Complex::div(*c1,*c2);
- dop.out();
- cout << endl;
- cout << "Сравнение на равенство: ";
- if (Complex::equ(*c1,*c2))
- cout << "Равны" << endl;
- else
- cout << "Не равны" << endl;
- cout << "Сопряженное для первого: ";
- dop = c1->conj();
- dop.out();
- cout << endl;
- cout << "Сопряженное для второго: ";
- dop = c2->conj();
- dop.out();
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement