Добавил:
okley
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:3 семестр / sr23
.cpp#include <iostream>
#include <math.h>
#include <tgmath.h>
using namespace std;
struct Complex {
double Re;
double Im;
};
double cMod(Complex a){ // модуль
double s=0.0;
s=sqrt((a.Re)*(a.Re)+(a.Im)*(a.Im));
return(s);
}
double cArg(Complex a){ // аргумент
double s=0.0;
s=atan2(a.Im, a.Re);
return(s);
}
void cSum(Complex a, Complex b, Complex &c){ // сумма
c.Re = a.Re + b.Re;
c.Im = a.Im + b.Im;
}
void cRazn(Complex a, Complex b, Complex &c){ // разность
c.Re = a.Re - b.Re;
c.Im = a.Im - b.Im;
}
void cProd(Complex a, Complex b, Complex &c){ // произведение
c.Re = (a.Re*b.Re)-(a.Im*b.Im);
c.Im = a.Im*b.Re + b.Im*a.Re;
}
void cDel(Complex a, Complex b, Complex &c){ // деление
if ((b.Re==0.0)&&(b.Im==0.0)){
cout << "\nError!\n";
return;
}
c.Re = (a.Re*b.Re + a.Im*b.Im)/(cMod(b)*cMod(b));
c.Im = (a.Im*b.Re - b.Im*a.Re)/(cMod(b)*cMod(b));
}
void cSquare(Complex a, Complex &c){ // квадрат
c.Re = (a.Re*a.Re)-(a.Im*a.Im);
c.Im = 2*a.Im*a.Re;
}
void cRoot(Complex a, Complex &c){ // корень
double arg = cArg(a)/2;
double mod = sqrt(cMod(a));
c.Re = mod*cos(arg);
c.Im = mod*sin(arg);
}
void cInput(Complex &a){
cout << "Input real part:\n";
cin >> a.Re;
cout << "Input imaginary part:\n";
cin >> a.Im;
}
void cOutput(Complex a){ // вывод
cout << a.Re;
if (a.Im<0) cout << a.Im << "i";
else cout << "+" << a.Im << "i";
}
void cSopr(Complex a, Complex &c){ // сопряженное
c.Re = a.Re;
c.Im = -a.Im;
}
int main() {
Complex c, d, summ;
cInput(c);
cOutput(c);
cout << "\n Module = " << cMod(c) << "\n";
cout << "Argument = " << cArg(c) << "\n";
cout << "Sopr. = ";
cSopr(c, d);
cOutput(d);
cout << "\n";
cInput(d);
cSum(c, d, summ);
cout << "Summa = ";
cOutput(summ);
cRazn(c, d, summ);
cout << "\n\nRaznost = ";
cOutput(summ);
cout << "\n\nUmnozhenie = ";
cProd(c, d, summ);
cOutput(summ);
cout << "\n\nDelenie = ";
cDel(c, d, summ);
cOutput(summ);
cout << "\n\nKvadrat = ";
cSquare(c, summ);
cOutput(summ);
cout << "\n\nKoren = ";
cRoot(c, summ);
cOutput(summ);
}
Соседние файлы в папке 3 семестр
