Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 семестр / sr23

.cpp
Скачиваний:
0
Добавлен:
16.11.2025
Размер:
2.31 Кб
Скачать
#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 семестр