Оператор вибору (варіант, перемикач) реалізує вибір однієї з можливих альтернатив, тобто варіантів продовження програми.
запису:
Case S of
K1: OP1;
K2: OP2;
. . .
Kn: OPn;
Else OP;
End;
, де:
Case - вибір, варіант;
of - із;
S - селектор, вираз порядкового типу;
Ki - константи вибору, константа, тип якої збігається з типом селектора;
OPi - будь-який оператор в тому числі порожній;
Оператор вибору реалізує наступну конструкцію:
Робота оператора вибору в Паскале: Обчислюється вираз selector. Обчислена значення послідовно порівнюється з константами альтернатив і передається управління оператору константа вибору, якого збігається з обчисленим значенням selector. Виконується оператор і передається управління за межі оператора вибору. Якщо обчислена значення селектора не збігається з жодним з констант, то керування передається на гілку Else, наявність якої, не обов'язково в цьому випадку керування передається за межі оператора вибору.
Рис. 9.6. Структурна схема оператора вибору.
Структуру оператора вибору можна реалізувати за допомогою вкладених умовних операторів, але це погіршує наочність програми. Рекомендується не більше 2-3 рівнів вкладень.
Приклад 9.6. Скласти програму обчислення функції y для заданого значення x.
де: a=2,8; 0;?x<0,5; Dx=0,01.
Текст програми
program gcase;
uses crt;
var a,b,x,y :real;
n :integer;
begin
clrscr;
a:=2.8; b:=5.1E-2;
writeln("Результат":20);
writeln(n"":3,"x":10,"y":15);
x:=0;
repeat
n:=trunc(10*x+1);
write(n:3);
case n of
1:y:=1+exp(a*x);
2:y:=a+ln(a+b);
3:y:=b*sqr(x);
4:y:=a-sqrt(abs(a*b/2));
5:y:=1+a*b*x;
end;
writeln (" ", x:10:5:3," ":5,y:9);
x:=x+0.05;
until x>=0.5;
Readln;
end.
Результат роботи програми:
Результат:
n x y
1 0.000 2.00E+00
1 0.050 2.15E+00
2 0.100 3.85E+00
2 0.150 3.85E+00
3 0.200 2.04E-03
3 0.250 3.19E-03
4 0.300 2.53E+00
4 0.350 2.53E+00
5 0.400 1.06E+00
5 0.450 1.06E+00