Лекция №7. Оператор множественного выбора Case of
Лекция №7.
Оператор множественного выбора Case of.
Цель: Познакомиться с оператором множественного выбора, привести примеры использования и указать на отличия от условного оператора. Определить задачи, в которых удобнее использовать оператор множественного выбора.
Иногда приходится решать задачи, когда использовать условный оператор If Then Else не удобно. Например, в зависимости от введенной цифры (от 1 до 7) вывести на экран соответствующий день недели. Тогда, при помощи оператора If решение будет выглядеть следующим образом.
Program z1;
Var
r : Integer;
Begin
ReadLn (r);
If r = 1 Then WriteLn ('понедельник')
Else If r = 2 Then WriteLn ('вторник')
Else If k = 3 Then WriteLn ('среда')... и т. д.
… …
End.
Это не удобно - очень много вложенных друг в друга условных операторов. Оператор Cаse - оператор выбора используется он следующим образом.
Case k of
символ1 : Begin <операторы1> End;
символ2 : Begin <операторы2> End;
символ3 : Begin <операторы3> End;
символ4 : Begin <операторы4> End;
.......
Else Begin <операторы> End;
End;
Где вместо символа стоит переменная перечисляемого типа (символьный - переменные этого типа содержат только один символ или типа Integer) а после : набор операторов, которые надо выполнить.
Обратите внимание. Что вместе с оператором Case of всегда используется окончание оператора – End. Часть после Else не обязательна, как и для оператора If Then Else.
Для нашего примера:
Program z1;
Var
t : Integer;
Begin
ReadLn(t);
Case t of
1 : WriteLn ('понедельник');
2 : WriteLn ('вторник');
3 : WriteLn ('среда');
4 : WriteLn ('четверг');
........
Else WriteLn ('такого дня недели нет');
End;
End.
Как видно из примера, оператор Case удобен, когда надо выбрать значение переменной из конечного набора каких-либо значений.
В случае если нужно указать не один символ, а несколько, их указывают через запятую.
Например: магазин работает в понедельник, среду и пятницу. В зависимости от введенного цифрой дня недели определить, рабочий день или выходной.
Program z1;
Var
w : Integer;
Begin
ReadLn(w);
Case w of
1, 3, 5 : WriteLn ('Рабочий день ');
2, 4, 6, 7 : WriteLn ('Выходной день ');
Else WriteLn ('такого дня недели нет');
End;
Задачи на урок:
1. Ввести номер месяца, на экран вывести, сколько дней в этом месяце.
Блок-схема | Программа |
2. Напечатать расписание уроков на введенный Вами день.
Блок-схема | Программа |
Домашнее задание.
Определите при помощи какого оператора ветвления удобнее решать задачи и решите их.
1. Известно, что доктор принимает пациентов в первой половине дня по четным числам месяца и во второй половине дня по нечетным числам месяца. Ввести с клавиатуры число и определить принимает ли сегодня доктор.
2. Ввести с клавиатуры дату, используя при этом 3 переменные: например 28.01.1997 (вводите в переменные a, b, c без точек!) Напишите программу вывода даты с написанием месяца прописью. Для нашего примера выведется: 28 января 1997 года.
1 | 2 |


