Самостоятельная работа По Дисциплине: Программирования на тему: № Работа с численными классами. Класс complex


Примеры использования класса complex


Download 432.11 Kb.
bet3/10
Sana23.12.2022
Hajmi432.11 Kb.
#1046730
TuriСамостоятельная работа
1   2   3   4   5   6   7   8   9   10
Bog'liq
Работа с численными классами. Класс complex - C.Бойзаков

2.2 Примеры использования класса complex

Следующая программа демонстрирует возможности класса complex по созданию комплексных чисел, их выводу в разных представлениях и выполнению некоторых типовых операций с комплексными числами.


Листинг 3-Типовые операции класса complex
// num/complex1.cpp
#include
#include
using namespace std;
int main()
{
/* Комплексное число с вещественной и мнимой частями
* - Вещественная часть: 4.0
* - Мнимая часть: 3.0
complex c1(4.0.3.0);
/* Создание комплексного числа в системе полярных координат
* - Амплитуда: 5.0
* - Фазовый угол: 0.75
*/
complex c2(polar(5.0.0.75));
// Вывод комплексного числа с вещественной и мнимой частями
cout « "c1: " « c1 « endl:
cout « "c2: " « c2 « endl;
// Вывод комплексного числа в полярных координатах
cout « "c1: magnitude: " « abs(cl)
« " (squared magnitude: " « norm(c1) « ") "
« " phase angle: " « arg(c1) « endl; cout « "c2: magnitude: " « abs(c2)
« " (squared magnitude: " « norm(c2) « ") " « " phase angle: " « arg(c2) « endl;
// Вывод сопряжений комплексных чисел
cout « "c1 conjugated: " « conj(c1) « endl;
cout « "c2 conjugated: " « conj(c2) « endl;
// Вывод результата вычисления
cout « "4.4 + c1 * 1.8: " « 4.4 + c1 * 1.8 « endl:
/* Вывод суммы c1 и с2: * - внимание: разные типы!
cout « "c1 + с2:
« c1+ complex(c2.real(),c2.imag()) « endl;
// Прибавление к c1 квадратного корня из c1 и вывод результата
cout « "c1 += sqrt(c1): ' « (c1 += sqrt(c1)) « endl;
}

Примерный результат выполнения программы выглядит так (точный результат зависит от реализации некоторых свойств типа double):


c1: (4.3)
C2: (3.65844.3.40819)
c1: magnitude: 5 (squared magnitude: 25) phase angle: 0.643501
c2: magnitude: 5 (squared magnitude: 25) phase angle: 0.75
c1: conjugated: (4.-3)
c2: conjugated: (3.65844.-3.40819)
4.4 + c1 * 1.8: (11.6.5.4)
c1 + c2: (7.65844.6.40819)
c1 += sqrt(c1): (6.12132.3.70711)
Вторая программа в цикле читает два комплексных числа и вычисляет результат возведения первого числа в степень второго:
Листинг 4-цикл возведения первого числа во второе
// num/complex2.cpp
include
#include
#include
#include
using namespace std;
int main()
{
complex c1. c2;
while (cin.peek() != EOF)
{
// Ввод первого комплексного числа
cout « "complex number c1: ";
cin » c1;
if (!cin)
{
cout « "input error" « endl;
return EXIT_FAILURE;
// Ввод второго комплексного числа cout « "complex number c2: ";
cin » с2; if (!cin)
{
сout « "input error" « endl;
return EXIT_FAILURE:
)
if (c1 == c2)
{
cout « "c1 and c2 are equal !" « endl;
}
cout « "c1 raised to the c2: " « pow(c1.c2) « endl « endl;
// Пропуск оставшейся части строки
cin.ignore(numeric_limits::max().'\n');
}
}

В таблице 1 приведены примеры входных данных и полученных результатов.


Таблица 1- Примеры входных данных.



c1




C2

Результат

2




2

c1 raised to c2: (4,0)













(16)




0.5

c1 raised to C2: (4,0)

(8,0)




0.333333333

c1 raised to c2: (2,0)













0.99




(5)

c1 raised to C2: (0.95099,0)

(0,2)




2

c1 raised to c2: (-4,4.8984e-16)

(1.7,0.3)




0

c1 raised to c2: (1,0)

(3,4)




(-4,3)

c1 raised to c2: (4.32424e-05,8.91396e-05)













(1.7,0.3)




(4.3,2.8)

c1 raised to c2: (-4.17622,4.86871)

Обратите внимание: при вводе комплексного числа указывается либо только вещественная часть в виде отдельного значения (в круглых скобках или без), либо вещественная и мнимая части в круглых скобках, разделенные запятыми.





Download 432.11 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling