Оператор выбора (вариант, переключатель) реализует выбор одной из возможных альтернатив, т.е. вариантов продолжения программы.
Формат записи:
Case S of
K1: OP1;
K2: OP2;
. . .
Kn: OPn;
Else OP;
End;
где:
Case – выбор, вариант;
of - из;
S – селектор, выражение порядкового типа;
Ki – константы выбора, константа, тип которой совпадает с типом селектора;
OPi – любой оператор в том числе пустой;
Оператор выбора реализует следующую конструкцию:
Работа оператора выбора в Паскале: Вычисляется выражение селектора. Вычисленное значение последовательно сравнивается с константами альтернатив и передается управление оператору константа выбора, которого совпадает с вычисленным значением селектора. Выполняется оператор и передается управление за пределы оператора выбора. Если вычисленное значение селектора не совпадает ни с одной из констант, то управление передается на ветвь 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(' ':10,x: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