Оператор вибору

Download Report

Transcript Оператор вибору

Основи алгоритмізації та
програмування

Оператор
вибору
 Оператор вибору
Оператор вибору має таку структуру:
CASE <вираз> OF
<список значень 1>:<оператор1>;
………………………………………
<список значень n> : <оператор n>
END;
Дія оператора. Якщо значення виразу збігається зі значенням з
деякого списку, то виконується відповідний оператор, а інші
оператори не виконуються. Список значень може складатися з
одного чи декількох елементів.
 Приклад 1
Приклад 1: Нехай Z — змінна символьного типу, а К, L, М
— змінні цілого типу.
Розглянемо оператор вибору для підрахунку кількості
символів у деякому тексті:
CASE Z OF
’А':
К:=K+1;
'О':
L:=L+1;
'В’,
END;
‘С’: M:=M+1;

Оператор вибору
Один оператор вибору замінює декілька умовних
операторів. Зокрема, повний умовний оператор можна
замінити таким оператором вибору:
CASE <умова> OF
true: <оператор 1>;
false: <оператор 2>
END;
 Приклад 2
Приклад 2: Розгалуження, можна реалізувати так:
... ... ... ... ... ...
CASE Сina<1000 OF
True: М:=М+1;
False: BEGIN
Suma:=Suma+Cina;
END
END;
Задача1
Нехай населені пункти позначені номерами 1, 2, 3, 4, 5, 6, 7, 8.
Вартість одного квитка до конкретного пункту визначаєть так:
Cina
22 ,
якщо k  1;


35 ,
якщо
k  2 ,3


 
50 ,
якщо
k  4;

72 ,
якщо
k  5,6


у всіх інших випадках.
 97 ,
Скільки коштуватимуть m квитків до одного конкретного
пункту?
Розглянемо програну Vybir. Тут в операторі CASE використано складову
ELSE, яка забезпечує виконання оператора Сina:=97, якщо вираз к не
належить до списків. Така можливість реалізована у мові Турбо Паскаль, але
не передбачена у стандартні мови.
 З а д а ч а 1. Програма
PROGRAM Vybir;
VAR
k, m, Cina: integer;
BEGIN
write ('Введіть кількість
пункту: ');
read(m, k);
CASE k OF
1
: Cina :=22;
2, 3 :
Cina :=35;
4
:
Cina :=50;
5,6 :
Cina :=72
ELSE Cina:=97
END;
writeln (m, ’
квитків
коштують ', m*Cina)
до
квитків
пункту
та
номер
’,
k,’
 Задача 2. Програма
Задача 2. Виконайте програму Dialog. Введіть число — кількість років — і прочитайте
відповідне повідомлення. У програмі Dialog використано діапазон значень 20..23 замість
списку 20, 21, 22, 23, що допускається в мові Паскаль.
PROGRAM Dialog;
VAR Vik : integer;
BEGIN
write ('Скільки Вам років?’);
read(Vik);
CASE Vik OF
12, 13: writeLn('Вам ще рано читати цей розділ');
14,15: writeln('Вaм ще не можна дивитися фільми для
дорослих');
16,17: writeln('Дo6pe вчіться, батьки будуть гордитися
Вами');
18, 19: writeln('Мінздоров"я попереджає...');
20..23: writeln('Пacкaль вивчати вже пізно –– пора
заміж’)
ELSE
Writeln(’Закрийте цю книжку! Читайте Н.Вірта!');
END
 Контрольні завдання
1. Скласти програму, яка визначає пору року за
порядковим номером місяця.
2. Скласти програму, яка визначає день тижня за його
порядковим номером.
3. Скласти програму, визначення кварталу року за
порядковим номером місяця.
4. Скласти програму, виконання арифметичної операції
+, -, *, / над числами a i b, в залежності від
натиснутої клавіші.