У випадку, коли необхідно використовувати декілька вказівок розгалуження, вкладених одна в одну, то краще замінити їх вказівкою варіанта (оператором вибору).
Оператор вибору (case)має вигляд: case<селектор> of
<список значень 1> : <оператор 1>;
…
<список значень n> : <оператор n>;
else<оператор n+1> end;
Вираз, який записується між службовим словом case і of, називається селектором. Селектор - це проста змінна цілого, символьного, перерахованого або логічного типу; списки значень - сталі або діапазони, тип яких зберігається з типом виразу. Якщо список значень складається з декількох елементів, то вони перераховуються через кому. Дійсні і рядкові типи в селекторах використовувати не можна. Складова частина else<команда n + 1> може бути відсутня - тоді матимемо коротку форму команди case.
Дія команди. Якщо значення виразу селектора збігається зі значенням із списку і, то виконується оператор з номером і, а інші оператори цієї конструкції не виконуються. Якщо значення виразу не збігається з жодним значенням з жодного списку, то виконується оператор n + 1 або у випадку короткої форми, наступний оператор після команди case, тобто після службового слова end
Задача 3.Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пункту k визначається так:

Скільки коштуватимуть т квитків до населеного пункту номер якого вводять з клавіатури ?
programKvytky;
usesCrt;
vark,m,cina: integer;
Begin
clrscr;
writeln (‘Введіть номер пункту та кількість квітків:’);
readln (k, m);
casek 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.
Хід роботи:
1. Вивчити теоретичний матеріал.
2. Виконати індивідуальне завдання.
3. Скласти звіт, в якому відповісти на теоретичні питання, описати алгоритм, описати програму, привести контрольний приклад виконання програми.
Контрольні запитання:
1. Який обчислювальний процес називають процесом з розгалуженням?
2. Який оператор умови використовується у мові Pascal?
3. Який оператор безумовного переходу використовується у мові Pascal?
4. Що таке оператор вибору і коли його використовують?
5. Як працює умовний оператор?
6. Які значення приймають логічні величини?
7. Які з наведених нижче операторів розгалуження є:
1) правильними________________
2) неправильними_______________
а) if a<b then a:=a+1 else b:=b-1;
б) if (x<5) and (y>3) then s:=s+1 else s:=s–1;
в) if a<>b then b:=a;
r) if 9 then k:=k+1.
8. Які значення будуть мати змінні a і b в результаті виконання оператору
розгалуження:
if a<b then a:=b else b:=a,
якщо перед виконанням а=0.5, b=-1.7
Відповідь а=_________ b=___________________