Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Кафедра ІСМ
Звіт
Лабораторна робота №3
«РЕАЛІЗАЦІЯ РОЗГАЛУЖЕНЬ У PASCAL»
Мета роботи: Ознайомитись із операторами керування мови Pascal, простими та складеними, умовними та безумовними операторами.
Контрольні запитання
Що таке складений оператор?
Це оператор в якому міститься більше ніж один оператор, він появляється коли за правилами повинен бути тільки один оператор а користувачу потрібно більше. Починається зі слова begin і закінчується словом end.
Як працює оператор умовного переходу if?
Якщо <логічний вираз> істинний, тоді виконається Оператор1, якщо ж <логічний вираз> хибний, виконається Оператор2.
Як працює оператор вибору case?
Спочатку значення виразу перевіряється із елементами списку значень. Якщо є збіг, то виконується той оператор, для якого значення виразу співпало із елементои списку значень. Щойно виконався один із операторів, керування передається на службове слово end, тобто оператор case закінчує роботу. Якщо жоден елемент зі списку значень не співпав із значенням виразу, виконується оператор <операторN+1>, якщо це повна команда case, або оператор, наступний за оператором case, якщо це коротка форма.
Як працює оператор goto?
Перед оператором ставиться мітка попередньо описана в розділі label. Тоді при виконанні команди goto це дозволить здійснити перехід на оператор перед яким була поставлена мітка.
Індивідуальні завдання
Перший рівень
На основі Прикладів 1-2, наведених у методичних вказівках,
продемонстуйте особливості використання операторів умовного
переходу та вибору. Приклад 1:
program r4lvl1p1;
uses crt;
var
x,y:real;
begin
clrscr;
writeln(‘IKNI’);
writeln(‘KN-16 Ivasyshyn Roman’);
writeln(‘lab 4, variant 17,lvl 1’0;
writeln(‘input x’);
readln(x);
if x>0 then y:=sqrt(x)*exp(x);
else if x<0 then y:=sqr(x)*100
else y:=100;
writeln(’y=’,y:12:3);
readkey;
end.
/
Ручний розрахунок:
x=-2<0
y=(-2)2
*100=4*100=400
Приклад 2
program r4lvl1p2;
var x:integer;
y:real;
begin
clrscr;
writeln(‘IKNI’);
writeln(‘KN-16 Ivasyshyn Roman’);
writeln(‘lab 4, variant 17,lvl 1’0;
writeln(‘input x’);
readln(x);
case x of
1:y:=x+100;
2:y:=x+200;
3:y=x+300;
else
y:=sqr(x)*400;
end;
writeln(‘y=’,y:12:2);
readkey;
end.
/
Ручний розрахунок:
x=2
y=2+200=202
Другий рівень
Скласти програму згідно номера варіанту для знаходження змінної у для відповідних значень х, використовуючи оператор умовного переходу. Вивести на друк значення аргументу, функції та проміжних величин. Передбачити у програмі обхід арифметичних операцій, які при певних значеннях аргументу можуть давати невизначений результат (ділення на нуль, корінь з від’ємного числа, логарифмування числа, меншого за нуль).
/
program r4lvl2;
uses crt;
const
x1=0.011;x2=-0.127;x3=1.546;k=0.8;l=7.145;
var a,b,y,x:real;
begin
clrscr;
writeln(‘IKNI’);
writeln(‘KN-16 Ivasyshyn Roman’);
writeln(‘lab 4, variant 17,lvl 2);
x:=x1;
a:=exp((1/3)*ln(k*exp(5*ln(x)-10*exp(x))));
b:=exp((1/3)*ln(ln(l)/ln(10)))*sin(x)/cos(x);
if (sqr(a)+sqr(b))>0.1 then y:=aarctan(a-5*b)
else y:=arctan(5*a+3*b);
writeln(‘a1=’,a:12:2);
writeln(‘b1=’,b:12:2);
writeln(‘y1=’,y1:12:2);
x:=x2;
if x<0 then writeln(‘False’);
else begin
a:=exp((1/3)*ln(k*exp(5*ln(x)-10*exp(x))));
b:=exp((1/3)*ln(ln(l)/ln(10)))*sin(x)/cos(x);
if (sqr(a)+sqr(b))>0.1 then y:=aarctan(a-5*b)
else y:=arctan(5*a+3*b);
writeln(‘a2=’,a:12:2);
writeln(‘b2=’,b:12:2);
writeln(‘y2=’,y1:12:2);
end;
x:=x3;
a:=exp((1/3)*ln(k*exp(5*ln(x)-10*exp(x))));
b:=exp((1/3)*ln(ln(l)/ln(10)))*sin(x)/cos(x);
if (sqr(a)+sqr(b))>0.1 then y:=aarctan(a-5*b)
else y:=arctan(5*a+3*b);
writeln(‘a3=’,a:12:2);
writeln(‘b3=’,b:12:2);
writeln(‘y3=’,y:12:2);
readkey;
end.
Ручний розрахунок:
/
a1=exp((1/3)*ln(k*exp(5*ln(x)-10*exp(x))))=1.73656414*10^-5
b1=exp((1/3)*ln(ln(l)/ln(10)))*sin(x)/cos(x)=1.0436700104*10^-2
y1= arctan(5*a+3*b)= 0.03
a3=exp((1/3)*ln(k*exp(5*ln(x)-10*exp(x))))=3.0883168*10^-7
b3=exp((1/3)*ln(ln(l)/ln(10)))*sin(x)/cos(x)=38.253980
y3= arctan(a-5*b)= -1.57
Третій рівень
Скласти програму для розв’язування наведеного завдання двома способами, використовуючи 1) команду case; 2) команду if. Придумати і задати вхідні дані так, щоб вибір був із 4-6 альтернатив.
17. Ввести непарне число з діапазону 1..10. Вивести назву словом.
1)
program r4lvl3p1;
uses crt;
var x:integer;
begin
clrscr;
writeln(‘IKNI’);
writeln(‘KN-16 Ivasyshyn Roman’);
writeln(‘lab 4, variant 17,lvl 3);
writeln(‘input x’);
readln(x);
case x of
1:writeln(‘odyn’);
3: writeln(‘try’);
5: writeln(‘pyat’);
7: writeln(‘sim’);
9: writeln(‘devyat’);
end;
readkey;
end.
/
2)
program r4lvl3p2;
uses crt;
var x:integer;
begin
clrscr;
writeln(‘IKNI’);
writeln(‘KN-16 Ivasyshyn Roman’);
writeln(‘lab 4, variant 17,lvl 3);
writeln(‘input x’);
readln(x);
if x=1 then writeln(‘odyn’) else
if x=3 then writeln(‘try’) else
if x=5 then writeln(‘pyat’);
if x=9 then writeln(‘devyat’);
readkey;
end.
/
Висновок: в цій лабораторній роботі я навчився користуватися умовними операторами.