www.ua5.org > Програмування мовою Pascal > Оператори розгалуження
Оператори розгалуження10 марта 2008. |
|
Розгалужений процес вміщує декілька шляхів. Вибір того чи іншого шляху залежить від виконання деяких умов. У багатьох випадках виникає потреба в зміні послідовного порядку операторів, що стає можливим завдяки операторам управління. До них в першу чергу відносяться IF та CASE. Оператор IF реалізує операцію умовного переходу (операцію розгалуження на два напрямки). Загальний вигляд: If умовний вираз then…else…; В умовному виразі задається умова розгалуження. При виконанні оператора IF цей вираз обчислюється з отриманням логічного результату. Якщо результат True, то виконується простий або складний оператор після слова Then. Якщо результат False, то виконується оператор після Else. Наприклад: If A<7.2 then Y:=5*A else Y:=5/A; Частину оператора Else … можна не вживати: If X>0 then K:=K+1; Це означає, що у випадку, коли число Х більше нуля, буде виконано оператор K:=K+1. Якщо така умова для конкретного числа хибна, то змінення К не відбувається, а управління передається на оператор, який в програмі записано після оператора If. Складений оператор Begin…End суттєво розширює можливості If: If A<0 then begin K:=K+1; R:=a; End Else begin L:=L+1; Q:=A; End; У складному операторі записують будь-яку кількість операторів. Вони виконуються “як одне ціле”. Тут можуть бути “свої” If, цикли, тощо. Зверніть увагу на те, що після оператора, який стоїть перед Else, не ставиться крапка з комою. Оператор Case забезпечує розгалуження на декілька напрямків. Загальний вигляд:
Case індекс вибору of список вибору; Else…; End;
де індекс вибору – проста змінна цілого, символічного, перелічуваного або логічного типу; список вибору – сукупність простих або складних операторів, перед кожним з яких стоїть константа вибору, тип якої співпадає з типом індексу вибору. Після слова Else може стояти простий або складний оператор (ця конструкція може бути відсутня). Приклад:
Case Kit of 1: Y:=sin(x); 2: Y:=cos(x); 3: Y:=sin(x)+cos(x); Else Y:=0; End; {case}
Змінна Kit (цілого типу) повинна бути визначеною до виконання оператора Case. Якщо Kit дорівнює 1, обчислюється функція Y:=sin(x), якщо вона дорівнює 2, то : Y:=cos(x). У тому випадку, коли Kit відрізняється від 1, 2 або 3, буде виконано оператор Y:=0. У списку вибору можна вживати складний оператор Вegin… End.
Приклад: скласти програму обчислення функції
Програма:
Var X, Y, Z, F : Real; Begin Write(‘Введіть Y, Z :’); ReadLn(Y,Z); Write(‘Введіть X :’); ReadLn(X); IF (X>=Y) THEN F:=SQR(X)+EXP(Z)/COS(Y) ELSE F:=SIN(X)+COS(Z); WriteLn(‘Значення F=’,F);
End. |