Оператор выбора
При многократном вложении условных операторов программа становится громоздкой и ее трудно понять. Считается, что число вложений не должно превышать двух–трех вложений. При большем числе вложений рекомендуется использовать оператор выбора CASE.
Общий вид
записи:
CASE <селектор> OF
<список констант выбора 1>: <оператор 1>;
………………………………………………
<список констант выбора n>: <оператор n>;
END;
Селектор – это выражение целого или символьного типа.
Константы выбора – всевозможные значения селектора. Константы выбора в списке перечисляются через запятую.
Работа оператора CASE
По вычисленному значению селектора выбирается для исполнения оператор той строки, в списке которой содержится константа, равная значению селектора. После выполнения выбранного оператора управление передается на конец оператора CASE.
Пример 1. Написать оператор выбора для вычисления y.
case n of
1: y := x;
2, 3: y := 2 * sqrt(abs(x));
4: y := exp(x);
end;
Графическая интерпретация оператора
В блок-схемах оператору CASE соответствует структура ВЫБОР.
Для приведенного выше примера эта структура выглядит следующим образом:
Замечание. Если в строке выбора необходимо записать несколько операторов, то их заключают в операторные скобки BEGIN....END.
Пример 2. Вычислить значение y.
Если значение x не принадлежит рассматриваемым промежуткам, то вывести на экран соответствующее сообщение.
В задаче переменная x является вещественной и не может использоваться в качестве селектора оператора CASE. Введем новую переменную целого типа, которой присваивается целая часть значения x:
n := trunc(x);
Тогда программа решения данной задачи с использованием оператора выбора может быть составлена следующим образом.
Program P_2;
Var
x, y: real;
n: integer;
Begin
writeln(‘Введите число x’);
read (x);
if (x<1) or (x>=5) then
writeln(‘ x не принадлежит ‘,
‘рассматриваемой области’)
else
begin
n := trunc(x);
case n of
1: y := sin(x);
2: y := exp(-x);
3: y := ln(x);
4: y := sin (x)/cos(x);
end;
writeln(‘y=’, y:6:2);
end;
End.