Advertisement
Proff_Ust

Лаба для Елизаветы(Вторая)

Dec 14th, 2015
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Complex
  6. {
  7.     public:
  8.         Complex(float a, float b)
  9.         {
  10.             _a = a;
  11.             _b = b;
  12.         }
  13.         void out()
  14.         {
  15.             cout << "(" << _a << "," << _b << ")";
  16.         }
  17.         static Complex add(Complex &c1, Complex &c2)
  18.         {
  19.             Complex *c3 = new Complex(c1._a + c2._a, c1._b + c2._b);
  20.             return *c3;
  21.         }
  22.         static Complex sub(Complex &c1, Complex &c2)
  23.         {
  24.             return *(new Complex(c1._a - c2._a, c1._b - c2._b));
  25.         }
  26.         static Complex mul(Complex &c1, Complex &c2)
  27.         {
  28.             return *(new Complex(c1._a * c2._a - c1._b * c2._b, c1._a * c2._b + c1._b * c2._a));
  29.         }
  30.         static Complex div(Complex &c1, Complex &c2)
  31.         {
  32.             float dop = (c2._a * c2._a + c2._b * c2._b);
  33.             return *(new Complex((c1._a * c2._a + c1._b * c2._b)/dop, (c1._b * c2._a - c1._a * c2._b)/dop));
  34.         }
  35.         static bool equ(Complex &c1, Complex &c2)
  36.         {
  37.             return ((c1._a == c2._a) && (c1._b == c2._b));
  38.         }
  39.        Complex conj()
  40.         {
  41.             return *(new Complex(_a, (-1) * _b));
  42.         }
  43.     protected:
  44.     private:
  45.         float _a,_b;
  46. };
  47.  
  48. int main()
  49. {
  50.     Complex *c1,*c2;
  51.     float a,b;
  52.     cout << "Введите первое число" << endl;
  53.     cout << "Действительная часть: ";
  54.     cin >> a;
  55.     cout << "Мнимая часть: ";
  56.     cin >> b;
  57.     c1 = new Complex(a,b);
  58.     cout << "Введите второе число" << endl;
  59.     cout << "Действительная часть: ";
  60.     cin >> a;
  61.     cout << "Мнимая часть: ";
  62.     cin >> b;
  63.     c2 = new Complex(a,b);
  64.  
  65.  
  66.     cout << "Сумма: ";
  67.     Complex dop = Complex::add(*c1,*c2);
  68.     dop.out();
  69.     cout << endl;
  70.     cout << "Разность: ";
  71.     dop = Complex::sub(*c1,*c2);
  72.     dop.out();
  73.     cout << endl;
  74.     cout << "Произведение: ";
  75.     dop = Complex::mul(*c1,*c2);
  76.     dop.out();
  77.     cout << endl;
  78.     cout << "Частное: ";
  79.     dop = Complex::div(*c1,*c2);
  80.     dop.out();
  81.     cout << endl;
  82.     cout << "Сравнение на равенство: ";
  83.     if (Complex::equ(*c1,*c2))
  84.         cout << "Равны" << endl;
  85.     else
  86.         cout << "Не равны" << endl;
  87.     cout << "Сопряженное для первого: ";
  88.     dop = c1->conj();
  89.     dop.out();
  90.     cout << endl;
  91.     cout << "Сопряженное для второго: ";
  92.     dop = c2->conj();
  93.     dop.out();
  94.     cout << endl;
  95.  
  96.  
  97.  
  98.     return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement