Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РАБОЧАЯ ТЕТРАДЬ_Pascal.doc
Скачиваний:
4
Добавлен:
24.11.2019
Размер:
343.55 Кб
Скачать

Урок №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. Ввести номер месяца, на экран вывести, сколько дней в этом месяце.

Блок-схема

Программа

  1. Напечатать расписание уроков на введенный Вами день.

Блок-схема

Программа

Домашнее задание.

Определите при помощи какого оператора ветвления удобнее решать задачи и решите их.

  1. Известно, что доктор принимает пациентов в первой половине дня по четным числам месяца и во второй половине дня по нечетным числам месяца. Ввести с клавиатуры число и определить принимает ли сегодня доктор.

  2. Ввести с клавиатуры дату, используя при этом 3 переменные: например 28.01.1997 (вводите в переменные a, b, c без точек!) Напишите программу вывода даты с написанием месяца прописью. Для нашего примера выведется: 28 января 1997 года.

1

2