Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct complex {
- double re, im;
- }; // описание структуры
- // Сумма
- complex sum(complex a, complex b) {
- complex res;
- res.re = a.re + b.re;
- res.im = a.im + b.im;
- return res;
- }
- // Вычитание
- complex sub(complex a, complex b) {
- complex res;
- res.re = a.re - b.re;
- res.im = a.im - b.im;
- return res;
- }
- // Деление
- complex div(complex a, complex b) {
- complex res;
- res.re = (a.re * b.re + a.im * b.im) / (a.im * a.im + b.im * b.im);
- res.im = (a.im * b.re - b.re * b.im) / (a.im * a.im + b.im * b.im);
- return res;
- }
- // Умножение
- complex mult(complex a, complex b) {
- complex res;
- res.re = a.re * b.re - a.im * b.im;
- res.im = a.re * b.im + b.re * a.im;
- return res;
- }
- bool Equal(complex a, complex b) { // сравнивает числа, равны или не равны
- return (a.re == b.re && a.im == b.im);
- }
- // Функция ввода
- void Input(complex &a) {
- cout << "re: ";
- cin >> a.re;
- cout << "im: ";
- cin >> a.im;
- }
- // Функция вывода
- void Output(complex b) {
- if (b.im != 0)
- cout << b.re << showpos << b.im << "i" << noshowpos << endl; // добавляет +/- к числу
- else
- cout << b.re;
- }
- // Основная функция
- int main() {
- setlocale(LC_ALL, "Russian"); // для корректного отображения
- complex a, b;
- cout << "z1" << endl;
- Input(a);
- cout << endl;
- cout << "z2" << endl;
- Input(b);
- cout << endl;
- if (!Equal(a, b)) // z1==z2
- cout << "z1≠z2";
- else cout << "z1=z2";
- cout << endl;
- cout << "z1+z2: ";
- a = sum(a, b);
- Output(a);
- cout << "z1-z2: ";
- a = sub(a, b);
- Output(a);
- cout << "z1/z2: ";
- a = div(a, b);
- Output(a);
- cout << endl;
- cout << "z1*z2: ";
- a = mult(a, b);
- Output(a);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement