Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Обчислити значення виразу y=a*x2+b*x+c для комплексних коефіцієнтів a, b, c у комплексній точці x. #include <iostream> #include <assert.h>
- using namespace std;
- // клас для роботи з комплексними числами class complex { // re – дійсна, im – уявна частини комплексного числа double re, im;
- public: // конструктор complex(double=0,double=0); // деструктор ~complex(); // перевантажені операції complex operator+(complex&); complex operator-(complex&); complex operator*(complex&); complex operator/(complex&); complex operator^(unsigned); friend istream& operator>>(istream&,complex&); friend ostream& operator<<(ostream&,complex&); };
- complex::complex(double r, double i) { re=r; im=i; }
- 541
- complex::~complex() { }
- complex complex::operator+(complex& y) { return complex(re+y.re, im+y.im); }
- complex complex::operator-(complex& y) { return complex(re-y.re, im-y.im); }
- complex complex::operator*(complex& y) { return complex(re*y.re-im*y.im, re*y.im+im*y.re); }
- complex complex::operator/(complex& y) { double r1=re; double i1=im; double r2=y.re; double i2=y.im; return complex((r1*r2-i1*i2)/(r2*r2+i2*i2), (-r1*i2+i1*r2)/(r2*r2+i2*i2)); }
- complex complex::operator^(unsigned n) { complex y(1,0); for(int i=1;i<=n;i++) y=y*(*this); return y; }
- istream& operator>>(istream& is, complex& x) { char c; cin>>c; assert(c=='('); cin>>x.re; cin>>c; assert(c==','); cin>>x.im; cin>>c; assert(c==')'); return is; }
- 542
- ostream& operator<<(ostream& os, complex& x) { os<<'('<<x.re<<','<<x.im<<')'<<endl; return os; }
- // головна функція void main() { // об’єкти класу complex a(1,1); complex b(1,1); complex c(1,1); complex x; // введення об’єкта з клавіатури cout<<"Введіть комплексне число у форматі: (re,im) ->"; cin>>x; // обчислення виразу над комплексними числами та // виведення результату на екран cout<<"Результат = "<<a*(x^2)+b*x+c<<endl; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement