Оператор вибору в Паскалі
На занятті буде розглянуто оператор вибору в Паскалі (Case). Дізнаєтеся як використовувати символьний тип char
Оператор вибору в Паскалі
- Оператор case в Паскалі використовується в тих випадках, коли в залежності від значення якої-небудь змінної потрібно виконати ті чи інші дії (прості або складові оператори).
- Якщо варіантів всього два, то можна обійтися і умовним оператором IF , З яким ми вже знайомі. Але якщо їх, наприклад, десять, то використовувати конструкцію if then else в pascal стає зовсім недоцільно. У цьому випадку оптимальний оператор CASE варіанту.
Розглянемо використання оператора вибору в мові Паскаль на конкретному прикладі.
Приклад:
Програма, запитує в учнів його позначку з інформатики та реагує на неї відповідним текстом
Особливість: Вибір не з двох, а з декількох варіантів в залежності від позначки.
Результат виконання з використанням умовного оператора if:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 var otmetka: integer; begin writeln ( 'Відмітка?'); readln (otmetka); if (otmetka = 1) or (otmetka = 2) then writeln ( 'кошмар!') else if otmetka = 3 then writeln ( 'погано') else if otmetka = 4 then writeln ( 'непогано') else if otmetka = 5 then writeln ( 'відмінно!') else writeln ( 'таких відміток не буває'); end.
var otmetka: integer; begin writeln ( 'Відмітка?'); readln (otmetka); if (otmetka = 1) or (otmetka = 2) then writeln ( 'кошмар!') else if otmetka = 3 then writeln ( 'погано') else if otmetka = 4 then writeln ( 'непогано') else if otmetka = 5 then writeln ( 'відмінно!') else writeln ( 'таких відміток не буває'); end.
Даний приклад демонструє нераціональну роботу програміста і занадто заплутаний код. Набагато лаконічніше виглядає код при використанні оператора вибору.
Результат виконання з використанням оператора вибору case:
1 2 3 4 5 6 7 8 9 10 11 12 var otmetka: integer; begin writeln ( 'відмітка?'); readln (otmetka); case otmetka of 1, 2: writeln ( 'кошмар!'); 3: writeln ( 'погано'); 4: writeln ( 'непогано'); 5: writeln ( 'відмінно!'); else writeln ( 'таких відміток не буває'); end end.
var otmetka: integer; begin writeln ( 'відмітка?'); readln (otmetka); case otmetka of 1,2: writeln ( 'кошмар!'); 3: writeln ( 'погано'); 4: writeln ( 'непогано'); 5: writeln ( 'відмінно!'); else writeln ( 'таких відміток не буває'); end end.
Блок-схема, відповідна оператору вибору:
Завдання 7. У програмі необхідно запросити час дня в годинах. Залежно від введеного часу, виводити повідомлення з вказівкою на те, до якого часу доби відноситься введений годину (опівночі, ніч, ранок, день, вечір)
- Щоб задати діапазон значень, використовується один з двох варіантів:
- Перерахування через кому: ... case x of: 1, 2, 3, 4, 5: writeln ( 'від одного до п'яти'); ...
- Використання ..: ... case x of: 1 .. 5: writeln ( 'від одного до п'яти'); ...
... case x of: 1,2,3,4,5: writeln ( 'від одного до п'яти'); ...
... case x of: 1..5: writeln ( 'від одного до п'яти'); ...
Перерахування або діапазон
- Після службового слова case може стояти ім'я змінної або арифметичне вираз цілого типу:
- або символьного типу (char):
Одиниці маси пронумеровані в такий спосіб: 1 - кілограм, 2 - міліграм, 3 - грам, 4 - тонна, 5 - центнер. Дано номер одиниці маси (ціле число в діапазоні 1-5) і маса тіла в цих одиницях (дійсне число). Знайти масу тіла в кілограмах.
* З задачника М. Е. Абрамян
Детально розібратися в тому, як працює оператор вибору Case в Паскалі, можна переглянувши видеоурок:
Символьний тип char в Паскалі
Для вирішення наступного завдання знадобиться тип char - символьний.
Мінлива даного типу оголошується так:
c: char;
і привласнює значення наступним чином:
c: = 'a';
Завдання 9. Калькулятор на Паскалі. Учень вводить з клавіатури число, символ арифметичної дії (+, -, *, /) і ще одне число. Комп'ютер повинен надрукувати результат. Вказівка: Для чисел і арифметичного дії використовуйте оператор ReadLn в Паскаль
Відмітка?Відмітка?
Відмітка?
Відмітка?