Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по паскалю.doc
Скачиваний:
1
Добавлен:
03.01.2020
Размер:
582.14 Кб
Скачать

7.4. Оператор выбора case

ОПЕРАТОР ВЫБОРА CASEпозволяет выбрать одно из нескольких направлений дальнейшего выполнения программы. Структура оператора:

CASE kv OF

Знач1: оператор1;

Знач2: оператор2;

Значk: операторk

[ ELSE оператор]

END;

Здесь kv – ключ выбора или выражение для вычисления значения ключа.

Примечание. Тип ключа выбора – любой порядковый тип (целый, символьный, логический, перечислимый).

Знач1, Знач2,…, Значk – значения, которые может принимать ключ kv (константы того же типа, что и ключ kv).

Работа оператора Case состоит в следующем: значение ключа kv последовательно сравнивается с каждой из констант и при их равенстве выполняется соответствующий этой константе оператор. После выполнения выбранного оператора действие Case завершается. Если значение kv не равно ни одной из перечисленных констант, то выполняется оператор, записанный после ELSE. В частности, раздел ELSE может быть опущен и в этом случае оператор выбора эквивалентен пустому оператору.

Пример1. По заданному номеру месяца программа выдает число дней в месяце.

Program long_m;

Var n_m:byte;

Begin

write(‘Введи номер месяца:’);readln(n_m);

Case n_m of {ключ n_m – целое число без знака, которое согласно типу byte может принимать значения из диапазона (0,255)}

1,3,5,7,8,10,12: writeln(‘В этом месяце 31 день’);

4,6,9,11: writeln(‘В этом месяце 30 дней’);

2: begin

writeln(‘в феврале невисокосного года 28 дней, ’);

writeln(‘ а в феврале високосного года 29 дней’)

end

else writeln(‘номер месяца задан неверно’)

end{Case};

writeln(‘Для завершения работы нажми enter’);readln

end.

Пример 2. Для заданного значения температуры по Цельсию определяется температура по шкале Фаренгейта, Кельвина или Ренкина.

Program Scale_T;

Var tc:real;­

S:char;

Begin writeln(‘Соответствие между температурными шкалами ’);

Writeln(‘Цельсия, Фаренгейта, Кельвина и Ренкина: ’);

Write(‘Задайте значение температуры по Цельсию Tc= ’);

Readln(tc);

If tc >= -273 then

Begin

Writeln(‘Температура по какой шкале Вас интересует? – ‘);

Write(‘Фаренгейта – нажать F, Кельвина – K, Ренкина – R;‘);

Readln(S);

Case S of {ключ – символьное значение}

‘F’,’f’: writeln(‘По Фаренгейту температура равна ’,

(1.8*tc+32) );

‘K’,’k’: writeln(‘По Кельвину температура равна ’,

(tc+273.15) );

‘R’,’r’: writeln(‘По Ренкину температура равна ’,

(1.8*tc+492) )

Else writeln(‘Программа не знает такой шкалы’);

End

Else writeln(‘Некорректно: заданная Tc ниже температуры абсо-

лютного нуля’);

writeln(‘Для завершения работы нажми enter’);readln

end.