Этот оператор предназначен для замены конструкций из вложенных if.
Структура:
case N of
N1: P1;
N2: P2;
NN: PN;
[else P;]
end;
[else P;] - необязательная часть оператора.
Где N - целочисленная переменная, или выражение целого типа;
N1, N2 , … NN - возможные значения переменной N;
P, P1, P2, … PN - простые или составные операторы.
По этому оператору:
если значение N = N1, то выполняется P1 (после чего управление передается оператору, следующему за оператором case...of);
если значение N = N2, то выполняется P2, (после чего управление передается оператору, следующему за оператором case...of);
…
если N не принимает ни одного из перечисленных значений, управление передается оператору P;
если структура else отсутствует и N - не принимает ни одного из перечисленных значений, управление передается следующему за case...of оператору.
Например:
case N of
1, 2, 5: writeln (’a’);
7 .. 10: writeln (’b’);
end;
1, 2, 5 - перечисляемые значения разделяются запятой.
7 .. 10 - интервал задается начальными и конечными значениями через две точки.
Примеры типовых задач по теме «Типовые вычислительные процессы. Ветвления»
1. Найти максимальное число среди трех неравных между собой вещественных чисел.
Программа
Пояснения
program prim_max1;
var
a, b, c: real;
begin
writeln (’введите a, b, c’);
readln (a, b, c);
if a>b then
if a>c then writeln (’max - a’)
else writeln (’max - c’)
else
if b<c then writeln (’max - b’)
else writeln (’max - c’) ;
readln;
end.
Имя программы – prim_max1
{Описательная часть}
{Исполнительная часть}
Вывод сообщения на экран
Ввод данных с клавиатуры
Поиск максимального из 3-х чисел,
2. Второй способ решения этой задачи:
Программа
Пояснения
program prim_max2;
var
a, b, c: real;
begin
writeln (’введите a, b, c’);
readln (a, b, c);
if (a>b) and (a>c) then writeln (’max-a’);
if (b>a) and (b>c) then writeln (’max-b’);
if (c>a) and (c>b) then writeln (’max-c’);
readln;
end.
Имя программы – prim_max2
{Описательная часть}
{Исполнительная часть}
Вывод сообщения на экран
Ввод данных с клавиатуры
Поиск максимального из 3-х чисел,
3. Вычислить значение функции:
y=
Значение аргумента х в градусах ввести с клавиатуры.
Программа
Пояснения
Program prim_3 ;
Uses crt;
var
x, y: real;
begin
clrscr;
writeln (’Введите x’);
readln (x);
if x>90 then writeln(’Функция не определена’)
else begin
if x<0 then y: = 0
else y: = sin (x*pi/180);
writeln (’y = ’,y:8:3);
end;
readln; end.
Имя программы – prim_3
{Описательная часть}
{Исполнительная часть}
Очистка экрана
Вывод сообщения на экран
Ввод данных с клавиатуры
Выбор варианта решения,
Вывод результата
Вопросы для самоконтроля
1. Какие алгоритмические конструкции называются ветвлениями?
2. Для чего используют оператор goto?
3. Почему при использовании нескольких условий в одном операторе if … then … else, каждое условие заключается в круглые скобки?
4. Перечислите основные логические операции.
5. Перечислите основные операции отношения.
6. В каких случаях прибегают к использованию оператора case … of ?