Умовні оператори - це такі оператори, за допомогою яких можливо впливати на послідовність виконання операторів програми.
IF. . THEN (якщо.. то)
IF.. THEN.. ELSE (якщо ..то. . інакше)
Якщо перехід здійснюється при виконанні якої-небудь умови -це умовний оператор.
В операторі IF. . THEN між ними записується умова. Якщо ця умова виконується, то будуть вуконуватися і оператори, що йдуть після THEN.
Приклад: IF x<3 THEN Writeln(x);
Умовний перехід можливо відобразити графічно таким чином:
Якщо умова виконується, то здійснюється перехід до 2 гілки обчислень, якщо ж ні, то до першої. І лише після цього здійснюється перехід до загальної ділянки.
Найпростішим прикладом використання умовного оператора є обчислення функції по одній із двох формул в залежності від значення аргумента:
y=Ln x, якщо x>0
, якщо x0
Оператор, що реалізує ці обчислення для деякого значення аргументу х має вигляд :
IF x>0 THEN у: =1п(х)
ELSEy:=exp(x);
Якщо умовний оператор не має конструкції ELSE, то така форма оператора називається скороченою. Форма запису оператора IF з ELSE називається повною. Перед ELSE; ніколи не ставиться. На клавіатурі немає знаків #,.,. Замість них користуються < >,<=,>=.
Приклад:Якщо значення змінної t не дорівнює 0 і при цьому
котангенс від t<0.5,.moдi змінити знак t; якщо t=0, то присвоїти t=1.
if t<>0 then
if (cos(t)/sin(t))<0.5 then
t:= -t else t:=l;
Розглянемо приклади програм, що містять умовний оператор:
Приклад 1: Задана функція
0, якщо x0
y=
якщо x>0
Написати програму обчислення у по х.
Program PR1;
Var x,y: integer;
Begin
Read(x);
If x<=0 then y:=0
Else y:=sqr(x)*x;
Writeln(‘y= ',y:3);
End.
Приклад2: Дано 2-а числа. Якщо перше більше другого по абсолютній величині, то необхідно зменшити перше в 5 разів. Інакше залишити числа без змін. Написати програму:
Program PR2;
Var x,y: real;
Веgin
Read (x,y);
If abs(x)>abs(y) then x: =x/5;
Write ('x= ',x:5:2, 'y= ',y:5:2);
End.
Приклад 3:Дано 3 нерівні числа А,В,С. Обчислити та надрукувати значений z = квадрату більшого з них. Побудувати блок-схему.
Program PR;
VarA,B,C: real;
Begin
Read(A,B,C);
If A>B then Z: =A else Z: =B;
If С>Z thenZ:=C;
Z:=SQR(Z);
Wrlteln('Z= ',Z:4;2);
End.