Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Pascal_mat №3.doc
Скачиваний:
2
Добавлен:
20.08.2019
Размер:
433.15 Кб
Скачать

Оператор вибору (варіанта)

Розглянутий умовний оператор if дозволяє вибирати тільки одне з двох можливих дій залежно від логічного виразу.

О ператор вибору case є узагальненням оператора if - він дає і можливість виконати одне з декількох дій залежно від значення перемикача.

З агальну структуру оператора вибору в повній формі можна представити в такий спосіб:

case Перемикач of

Список констант1: Оператор1;

Список констант2: Оператор2;

Список константN: ОператорN

else ОператорЕ

end

Однією фразою логіку роботи оператора вибору можна описати так: обчислене значення Перемикача визначає, який з Операторів повинен бути виконаний. Якщо Перемикач приймає одне зі значень Спискаконстант1, то виконується Оператор1, а інші Оператори пропускаються. Якщо Перемикач приймає одне зі значень Спискаконстант2, то виконується 0ператор2. Аналогічно будуть виконуватися оператори від Оператора3 до ОператораN. ОператорЕ буде виконуватися в тому випадку, якщо значення Перемикача не збіглося з жодним зі значень Списківконстант від 1-го до N-ro.

У неповній формі оператора case альтернативна всім попереднім варіантам вибору вітка else відсутня. У цьому випадку, якщо значення Перемикача не збігається з жодним зі значень констант вибору, не виконується жоден з Операторів, описаних в case, і керування передається операторові, що стоїть безпосередньо після ключового слова end, що замикає оператор case.

Приклади, що демонструють найбільш характерні способи використання оператора case.

Завдання 3

var Arrow : Char;

Position: record

X,Y : Word

end;

begin

with Position d

case Arrow of

#72 : Y:=Y-1;

#80 : Y:=Y+1;

#75 : X:=X-1;

#77 : X:=X+1

end

end.

Завдання 4 var Symbol : Char;

begin

case Symbol of

’0’..’9’ :writeln (‘Це цифра’);

’a'..’z : writeln ( Це мала літера');

'A'..'Z' : writeln ('Це прописна буква');

#10,#13,#26: writeln ('Це керуючий символ’)

else writeln ('Це інший символ’)

end

Завдання 5 Написати програму, що визначає по номері місяця кількість днів у ньому.

program Z4;

var Numer:Byte; B:Char;

begin

Write('уведіть номер місяця =>');

Readln(Number);

Write('У цьому місяці ');

case Number of

1,3,5,7,8,10,12 : Writeln('31 день ');

4,6,9,11 : Writeln('30 днів ');

2 : begin

Writeln;

Write(' Рік високосний ? Д/Н => ');

Readln(B);

case B of

'Д' : Writeln('29 днів');

'Н' : Writeln('28 днів');

else : Writeln('28 або 29 днів');

end;

end;

else Writeln('номер місяця уведений невірно');

end;

end.