Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
39
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

Условный оператор Case

Оператор Case является обобщением оператора If и позволяет сделать выбор из произвольного числа имеющихся вариантов.

Формат:

Case <выражение> Of

<список 1>:<оператор 1;>

<список 2>:<оператор 2;>

……..

<список n>:<оператор n;>

[ Else <оператор>]

End;

В этой структуре:

Выражение – выражение любого простого типа, кроме вещественного типа, значение которого вычисляется.

список 1, список 2,…, список n – константы, с которыми сравнивается значение выражения.

оператор 1, оператор 2,…, оператор n – операторы, из которых выполняется тот, с константой которого совпадает значение выражения.

оператор – оператор, который выполняется, если значение выражения не совпадает ни с одной из констант.

Ветвь оператора Else является необязательной. Если она отсутствует и значение выражения не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора If перед словом Else точку с запятой можно ставить, хотя это и необязательно.

Примеры решения задач

  1. Выражение целочисленного типа.

Ввести номер месяца и определить месяц, соответствующий этому номеру.

Var

X: Byte;

BEGIN

Write(‘Введите номер месяца:’);

ReadLn(X);

Case X Of

1: Write(‘Январь’);

2: Write(‘Февраль’);

3: Write(‘Март’);

4: Write(‘Апрель’);

5: Write(‘Май’);

6: Write(‘Июнь’);

7: Write(‘Июль’);

8: Write(‘Август’);

9: Write(‘Сентябрь’);

10: Write(‘Октябрь’);

11: Write(‘Ноябрь’);

12: Write(‘Декабрь’);

Else

WriteLn(‘Такого месяца нет’);

End;

END.

  1. Выражение интервального типа.

Ввести номер месяца и определить время года, к которому относится этот месяц.

Var

X: Byte;

BEGIN

Write(‘Введите номер месяца:’);

ReadLn(X);

Case X Of

1..2,12: WriteLn(‘Зима’);

3..5: WriteLn(‘Весна’);

6..8: WriteLn(‘Лето’);

9..11: WriteLn(‘Осень’);

End;

END.

  1. Выражение символьного типа.

Составить программу, которая по введенному значению выводит оценки по математике, физике, химии.

USES Crt;

VAR M:Char;

BEGIN

ClrScr;

WriteLn(' По какому предмету Вы хотите увидеть оценки');

WriteLn(' М - математика');

WriteLn(' Ф - физика');

WriteLn(' Х - химия');

ReadLn(M);

CASE M OF

'М','м':WriteLn('5 5 4 4 5 5 3 5 5 ');

'Ф','ф':WriteLn('5 4 5 3 5 4 5 5 5 ');

'Х','х':WriteLn('4 3 5 3 4 4 4 5 ');

End;

END.

Примеры для самостоятельного решения:

  1. Составить программу, которая по введенному значению 1, 2, 3 вычисляет:

  1. Площадь параллелограмма

  2. Периметр параллелограмма

  3. Выход

  1. Составить программу «Календарь XX столетия», которая определяет день недели любого дня XX-го столетия. По введенному значению 1, 2, 3 вычисляет

  1. Номер дня недели по формуле, где D- день, М-месяц, G-год:

  • S=[(12-M)/10]

  • K=[(G-1900-S)*365,25]+[(M+12*S-2)*30,59]+D+29

  • N=K-7[K/7] (N-вычисляется от 0-воскресенье до 6-суббота, []-целая часть)

  1. День недели по его номеру

  2. Выход