Advertisement
ilyakanyshev

task3

Jan 23rd, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. class Complex {
  7.     public:
  8.         double r; // real ( + 3 )
  9.         double i; // unreal ( + 3i )
  10.         void input() {
  11.             double a, b;
  12.             cout << "Please, enter complex number (a+bi): ";
  13.             cin >> a >> b;
  14.             this->r = a;
  15.             this->i = b;
  16.         }
  17.         Complex operator+(Complex tmp) {
  18.             Complex a;
  19.             a.r = this->r + tmp.r;
  20.             a.i = this->i + tmp.i;
  21.             return a;
  22.         }
  23.         Complex operator+(int tmp) {
  24.             Complex a;
  25.             a.r = this->r + tmp;
  26.             a.i = this->i;
  27.             return a;
  28.         }
  29.         Complex operator-(Complex tmp) {
  30.             Complex a;
  31.             a.r = this->r - tmp.r;
  32.             a.i = this->i - tmp.i;
  33.             return a;
  34.         }
  35.         Complex operator-(int tmp) {
  36.             Complex a;
  37.             a.r = this->r - tmp;
  38.             a.i = this->i;
  39.             return a;
  40.         }
  41.         Complex operator*(Complex tmp) {
  42.             Complex a;
  43.             a.r = this->r*tmp.r + this->i*tmp.i;
  44.             a.i = this->r*tmp.i + this->i*tmp.r;
  45.             return a;
  46.         }
  47.         Complex operator*(int tmp) {
  48.             Complex a;
  49.             a.r = this->r*tmp;
  50.             a.i = this->i*tmp;
  51.             return a;
  52.         }
  53.         Complex operator/(Complex tmp) {
  54.             Complex a;
  55.             a.r = (this->r * tmp.r + this->i * tmp.i)/(tmp.i*tmp.i + tmp.r*tmp.r);
  56.             a.i = (this->i * tmp.r - this->r * tmp.i)/(tmp.i*tmp.i + tmp.r*tmp.r);
  57.             return a;
  58.         }
  59.         Complex operator/(int tmp) {
  60.             Complex a;
  61.             a.r = this->r/tmp;
  62.             a.i = this->i/tmp;
  63.             return a;
  64.         }
  65.         void output() {
  66.             if (this->r != 0)
  67.                 cout << this->r;
  68.             if ((this->i > 0)&&(this->r != 0))
  69.                 cout << "+";
  70.             if (this->i != 0)
  71.                 cout << this->i << "i";
  72.             if ( ( this->r == 0 ) && ( this->i == 0 ) )
  73.                 cout << this->r;
  74.             cout << endl;
  75.         }
  76. };
  77.  
  78. int main()
  79. {
  80.     int n;
  81.     Complex *mass;
  82.     cout << "Please, enter n: ";
  83.     cin >> n;
  84.     mass = new Complex[n];
  85.     for (int i = 0; i<n; i++)
  86.         mass[i].input();
  87.        
  88.     cout << endl << "[0]+[1]=";
  89.     Complex tmp = mass[0] + mass[1];
  90.     tmp.output();
  91.     cout << "[0]-[1]=";
  92.     tmp = mass[0] - mass[1];
  93.     tmp.output();
  94.     cout << "[0]*[1]=";
  95.     tmp = mass[0] * mass[1];
  96.     tmp.output();
  97.     cout << "[0]/[1]=";
  98.     tmp = mass[0] / mass[1];
  99.     tmp.output();
  100.     cout << endl;
  101.    
  102.     int index = 0;
  103.     for (int i = 1; i<n; i++)
  104.         if (fabs(mass[index].r-mass[index].i) > fabs(mass[i].r-mass[i].i))
  105.             index = i;
  106.     cout << "Searched complex number: ";
  107.     mass[index].output();
  108.     return 0;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement