БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Комплексные числа

Структуры можно использовать для реализации данных сложного типа. В качестве примера можно привести комплексные числа. Сразу заметим, что именно в этом случае использование структур не является оптимальным подходом - гораздо более эффективным представляется исполь­зование классов, к тому же в С++ есть специальный библиотечный класс для работы с комплексными числами.

Напомним, что любое комплексное число z может быть представлено в виде \(z=x+i\cdot y\) где действительное число x называется действительной частью числа, действительное число y называется мнимой частью комплексного числа, а мнимая единица \(i^{2}=-1\). Приведенное представление комплексного числа называется алгебраическим. Существует также тригонометрическая форма представления комплексного числа. приведен пример программного кода, в котором для ра­боты с комплексными числами создается специальная структура, а также функция для вычисления результата сложения двух комплексных чисел и перевода комплексного числа из тригонометрической формы в алгебра­ическую.
#include 
#include 
using namespace std;
//Алгебраическая форма комплексного числа:
struct ComplAlg{
double Re;
double Im;
};
//Тригонометрическая форма комплексного числа:
struct ComplTrig{
double r;
double phi;
};
//Сумма комплексных чисел (алгебраическая форма):
ComplAlg sum(ComplAlg z1,ComplAlg z2){
ComplAlg z;
z.Re=z1.Re+z2.Re;
z.Im=z1.Im+z2.Im;
return z;
}
//Перевод из тригонометрической в алгебраическую форму:
ComplAlg TrigToAlg(ComplTrig z){
ComplAlg tmp;
tmp.Re=z.r*cos(z.phi);
tmp.Im=z.r*sin(z.phi);
return tmp;}
//Отображение числа (алгебраическая форма):
void show(ComplAlg z){
cout << z.Re;
if(z.Im >= 0) cout << " + " << z.Im << "i\n";
else cout << " - " << -z.Im << "i\n";
}
int main(){
const double pi=3.1415;
ComplAlg A,B,C;
ComplTrig D;
A.Re=1;
A.Im=-1;
B.Re=4;
B.Im=5;
D.r=2;
D.phi=pi/6;
C=TrigToAlg(D);
show(A);
show(B);
show(C);
C=sum(A,B);
show(C);
return 0;}

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 6
Гостей: 5
Пользователей: 1

STUDLAB Сообщить про опечатку на сайте