Главная » 2019 » Апрель » 10 » Структура. Комплексные числа
10:46
Структура. Комплексные числа

#include <iostream>
using namespace std;
struct complex
{
    double Re;
    double Im;
};
void vvod_complex(complex *x);
void vivod_complex(complex *x);
void plus(complex *x, complex *y, complex *z);
void minus(complex *x, complex *y, complex *z);
void multy(complex *x, complex *y, complex *z);
void devide(complex *x, complex *y, complex *z);
void pow_(complex *x, int n, complex *z);
int main()
{
    complex a,b,c;
    vvod_complex(&a); 
    vvod_complex(&b);
    cout<<"a="; vivod_complex(&a);
    cout<<"b="; vivod_complex(&b);
    plus(&a,&b,&c);
    cout<<"a+b="; vivod_complex(&c);
    minus(&a,&b,&c);
    cout<<"a-b="; vivod_complex(&c);
    multy(&a,&b,&c);
    cout<<"a*b="; vivod_complex(&c);
    devide(&a,&b,&c);
    cout<<"a/b="; vivod_complex(&c);
    int n=4;
    pow_(&a,n,&c);
    cout<<"a^"<<n<<"="; vivod_complex(&c);
    system("pause");
}
void pow_(complex *x, int n, complex *z)
{
    multy(x,x,z);
    for (int i=1;i<=n-2;i++)
       multy(x,z,z);
}
void devide(complex *x, complex *y, complex *z)
{
    z->Re=(x->Re*y->Re + x->Im*y->Im)/(y->Re*y->Re+y->Im*y->Im);
    z->Im=(x->Im*y->Re - x->Re*y->Im)/(y->Re*y->Re+y->Im*y->Im);
}
void multy(complex *x, complex *y, complex *z)
{
    z->Re=x->Re*y->Re - x->Im*y->Im;
    z->Im=x->Re*y->Im + x->Im*y->Re;
}
void minus(complex *x, complex *y, complex *z)
{
    z->Re=x->Re - y->Re;
    z->Im=x->Im - y->Im;
}
void plus(complex *x, complex *y, complex *z)
{
    z->Re=x->Re + y->Re;
    z->Im=x->Im + y->Im;
}
void vvod_complex(complex *x)
{
    cin>>x->Re>>x->Im;
}
void vivod_complex(complex *x)
{
    cout<<x->Re;
    if (x->Im>0 ) cout <<"+";
    cout<<x->Im<<"i"<<endl;
}

Просмотров: 303 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar