1) Вибір. Команда Case.
Команда вибору (case) має вигляд
case <вираз> of
<список значень 1> : <команда1>
……………..
<список значень n> : <команда n>
else <команда n+1>
end;
Тут вираз — це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень — сталі або діапазони, тип яких збігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому. Складова частина else <команда п+1> може бути відсутня — тоді матимемо коротку форму команди case.
Дія команди. Якщо значення виразу збігається зі значенням з списку і, то виконується команда з номером і, а інші команди цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується команда n+1 або, у випадку короткої форми, наступна команда після команди case.
2) Демонстраційний приклад.
Задача. Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:
22, k = 1, 25, k = 2,3,4,30, k = 5,6, 35, k = 7,8.
Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?
program Kvytky;
uses Crt;
var k,m,cina:integer;
begin
clrscr;
writeln('Введіть номер пункту та кількість квитків:');
readln(k,m);
case k of
1 : cina:=22;
2..4 : cina:=25;
5,6 : cina:=30
else
cina:=35
end;
write(m, 'квитків до пункту ', k, ' коштують ');
writeln(m*cina);
readln
end.
Якщо під час виконання програми ввести дані так: 3 5, то на екрані отримаємо: 5 квитків до пунку 3 коштують 125.
2) Розв’язування задач.
Розв’язати самостійно такі задачі:
1) Ввести число від 1 до 12. В залежності від цього числа вивести пори року.
2) Ввести число від 1 до 7. В залежності від цього числа вивести дні тижня.