/
haseew
/
Lab_2
Обзор
Документация
Войти
/
haseew
/
Lab_2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
compleks.cpp
92 строки
2 KB
haseew
create: Bell.cpp, Bell.h, CMakeLists.txt, compleks.cpp, compleks.h, OddEvenSeparator.cpp, OddEvenSeparator.h, Stock.cpp, Stock.h, Table.cpp, Table.h, main.cpp, otchet_lab2.doc
04 мар 2026, 19:20
Верифицирован
04 мар 2026, 19:20
e5db715
Код
Авторство
О чём код?
#define _USE_MATH_DEFINES // Нужно для работы M_PI #include <cmath> #include <iostream> #include "compleks.h" // Реализация конструкторов Complex::Complex() { re = 0.0; im = 0.0; } Complex::Complex(double x, double y) { re = x; im = y; } // Реализация Set и Get void Complex::Set(double x, double y) { re = x; im = y; } double Complex::GetRe() const { return re; } double Complex::GetIm() const { return im; } // Модуль комплексного числа double Complex::Abs() const { return std::sqrt(re * re + im * im); } // Аргумент комплексного числа double Complex::Arg() const { if ((re > 0 && im > 0) || (re > 0 && im < 0)) return std::atan(im / re); else if ((re < 0 && im > 0) || (re < 0 && im < 0)) return std::atan(im / re) + M_PI; else if (re == 0 && im > 0) return M_PI / 2; else if (re == 0 && im < 0) return M_PI / -2; else if (re > 0 && im == 0) return 0; else return M_PI; } // Вывод в стандартной форме "re + i*im" void Complex::Print() const { std::cout << re; if (im >= 0) std::cout << " + i*" << im; else std::cout << " - i*" << std::abs(im); std::cout << std::endl; } // Вывод в тригонометрической форме "p * (cos(phi) + i*sin(phi))" void Complex::TrigPrint() const { double p = Abs(); double phi = Arg(); std::cout << p << " * (cos(" << phi << ") + i*sin(" << phi << "))" << std::endl; } // Вывод в показательной форме "p * e^(i*phi)" void Complex::ExpPrint() const { double p = Abs(); double phi = Arg(); std::cout << p << " * e^(i*" << phi << ")" << std::endl; } // Сложение Complex Complex::Add(Complex z) const { return Complex(re + z.re, im + z.im); } // Вычитание Complex Complex::Sub(Complex z) const { return Complex(re - z.re, im - z.im); } // Умножение Complex Complex::Mult(Complex z) const { return Complex(re * z.re - im * z.im, re * z.im + im * z.re); } // Деление Complex Complex::Div(Complex z) const { double denominator = z.re * z.re + z.im * z.im; double new_re = (re * z.re + im * z.im) / denominator; double new_im = (-re * z.im + im * z.re) / denominator; return Complex(new_re, new_im); }