Advertisement
AmirVagapov

Untitled

Sep 14th, 2021
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.03 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct complex {
  5.     double re, im;
  6. }; // описание структуры
  7.  
  8. // Сумма
  9. complex sum(complex a, complex b) {
  10.     complex res;
  11.     res.re = a.re + b.re;
  12.     res.im = a.im + b.im;
  13.     return res;
  14. }
  15.  
  16. // Вычитание
  17. complex sub(complex a, complex b) {
  18.     complex res;
  19.     res.re = a.re - b.re;
  20.     res.im = a.im - b.im;
  21.     return res;
  22. }
  23.  
  24. // Деление
  25. complex div(complex a, complex b) {
  26.     complex res;
  27.     res.re = (a.re * b.re + a.im * b.im) / (a.im * a.im + b.im * b.im);
  28.     res.im = (a.im * b.re - b.re * b.im) / (a.im * a.im + b.im * b.im);
  29.     return res;
  30. }
  31.  
  32. // Умножение
  33. complex mult(complex a, complex b) {
  34.     complex res;
  35.     res.re = a.re * b.re - a.im * b.im;
  36.     res.im = a.re * b.im + b.re * a.im;
  37.     return res;
  38. }
  39.  
  40. bool Equal(complex a, complex b) { // сравнивает числа, равны или не равны
  41.     return (a.re == b.re && a.im == b.im);
  42. }
  43.  
  44. // Функция ввода
  45. void Input(complex &a) {
  46.     cout << "re: ";
  47.     cin >> a.re;
  48.     cout << "im: ";
  49.     cin >> a.im;
  50. }
  51.  
  52. // Функция вывода
  53. void Output(complex b) {
  54.     if (b.im != 0)
  55.         cout << b.re << showpos << b.im << "i" << noshowpos << endl; // добавляет +/- к числу
  56.     else
  57.         cout << b.re;
  58. }
  59.  
  60. // Основная функция
  61. int main() {
  62.    
  63.     setlocale(LC_ALL, "Russian"); // для корректного отображения
  64.    
  65.     complex a, b;
  66.    
  67.     cout << "z1" << endl;
  68.     Input(a);
  69.     cout << endl;
  70.    
  71.     cout << "z2" << endl;
  72.     Input(b);
  73.     cout << endl;
  74.    
  75.     if (!Equal(a, b)) // z1==z2
  76.     cout << "z1≠z2";
  77.     else cout << "z1=z2";
  78.     cout << endl;
  79.    
  80.     cout << "z1+z2: ";
  81.     a = sum(a, b);
  82.     Output(a);
  83.    
  84.     cout << "z1-z2: ";
  85.     a = sub(a, b);
  86.     Output(a);
  87.    
  88.     cout << "z1/z2: ";
  89.     a = div(a, b);
  90.     Output(a);
  91.     cout << endl;
  92.    
  93.     cout << "z1*z2: ";
  94.     a = mult(a, b);
  95.     Output(a);
  96.    
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement