МЕТА РОБОТИ: Засвоєння поняття комплексного числа, форм його подання, порядку виконання елементарних операцій з комплексними числами (додавання, віднімання, множення, ділення), набуття навиків програмування дій з комплексними числами, закріплення навиків застосування структурованих змінних.
ЗАВДАННЯ.
Задано два комплексних числа Z 1 та Z 2 в алгебраїчній або показниковій формі. Необхідно у відповідності до таблиці варіантів (табл.5.2) скласти алгоритм та програму розрахунку дійсної, уявної частини, модуля та аргументу заданих чисел Z 1 та Z 2, та результатів виконання заданих операцій над цими числами. Вивід результатів необхідно організувати таким чином, щоб форму представлення результату вибирав користувач програми у відповідь на запит.
Варіант
Форма представлення
Операція
першого
другого
2
алгебраїчна
алгебраїчна
ділення
1.ПОСТАНОВКА ЗАДАЧІ.
Перше число потрібно ввести в алгебраїчній формі ,друге в показниковій . Потім число в показниковій формі переводимо в алгебраїчну. віднімаємо ці числа, та за допомогою оператора «case» даємо можливість користувачу вибрати форму представлення результату числа 3.
2. РОЗРОБКА СТРУКТУРИ ДАНИХ.
№п(п
Позначення
Ім’я
Тип
Призначення, опис
1
a3
a
дійсна
Дійсна частина числа 3
2
b3
b
дійсна
уявна частина числа 3
3
A1
a
дійсна
Дійсна частина першого числа
4
B1
b
дійсна
Уявна частина першого числа
5
A2
a
дійсна
Дійсна частина другого числа
6
B2
b
дійсна
Уявна частина другого числа
7
Mod3
|M|
дійсна
Модуль третього числа
8
Arg3
f
символьна
Аргумент третого числа
3.РОЗРОБКА АЛГОРИТМУ.
Т
Н
4. РОЗРОБКА ПРОГРАМИ.
program lab5;
var
a1,a2,a3, b1,b2,b3,arg3,mod3:real;
h:integer;
begin
writeln('vvedit dijsny chastuny pershoho chusla'); readln(a1);
writeln('vvedit yjavny chastuny pershoho chusla'); readln(b1);
writeln('vvedit dijsny chastuny drygogo chusla'); readln(a2);
writeln('vvedit yjavny chastuny drygogo chusla'); readln(b2);
writeln('natusnit 1(2) dlja predstavlennja');
writeln('rezyltaty v pokaznukovij(alhebrajishnij) formi');
readln(h);
a3:=(a1*a2+b1*b2)/(a2*a2+b2*b2);
b3:=(b1*a2-b2*a1)/(a2*a2+b2*b2);
case h of
1: begin mod3:=sqrt(sqr(a3)+sqr(b3));
if (a3>0) and (b3<0) then arg3:=2*pi-arctan(b3/a3);
if (a3<0) and (b3<0) then arg3:=arctan(b3/a3)+pi;
if (a3>=0) and (b3>=0) then arg3:=arctan(b3/a3);
if (a3<0) and (b3>0) then arg3:=-arctan(b3/a3)+pi;
Write('Z1-Z2=',mod3:8:3,'*EXP(');
If arg3<0 then
Write ('-i*', Abs(arg3):8:3 ,')')
else Write ('i*',(arg3):8:3,')')
end;
2: begin
if (b3>0) then writeln('Z1-Z2=',a3:8:3,'+i',b3:8:3)else
if (b3<0) then writeln('Z1-Z2=',a3:8:3,'-i',abs(b3):8:3)
else writeln('Z1-Z2=',a3:8:3); end;
end; readln;
end.
5. ТЕСТУВАННЯ ТА НАЛАГОДЖЕННЯ.
/
Висновок: я засвоїв поняття комплексного числа( Z = a + jb),форм його подання, порядку виконання елементарних операцій з комплексними числами (додавання, віднімання, множення, ділення), набув навики програмування дій з комплексними числами, закріпив навики застосування структурованих змінних. Ознайомився з оператором «case».
Міністерство освіти і науки україни
НУ «Львівська Політехніка»
Кафедра теоретичної радіотехніки та радіовимірювань
ЗВІТ З ЛАБОРАТОРНОЇ РОБОТИ №5
НА ТЕМУ «ПРОГРАМУВАННЯ ЕЛЕМЕНТАРНИХ ОПЕРАЦІЙ З КОМПЛЕКСНИМИ ЧИСЛАМИ. »
Варіант №2
Підготував студент
групи РТ-12
Бей Василь
Прийняв:
Нестор Н. І.
Львів 2010р.