- •Комп’ютерний практикум №4
- •Керуючі структури
- •Мета роботи: ознайомитися з логічними і циклічними структурами в середовищі Delphi.
- •Теоретичні відомості
- •1 Умова
- •2.1 Інструкція if
- •2.2 Інструкція case
- •3 Цикли
- •3.1 Інструкція for
- •Interface
- •Implementation
- •3.2 Інструкція while
- •Interface
- •Implementation
- •3.3 Інструкція repeat
- •Interface
- •Implementation
- •4 Інструкція goto
- •Індивідуальні завдання
- •Контрольні питання
2.2 Інструкція case
Множинний вибір може бути реалізований за допомогою вкладених одна в іншу інструкцій if. Такий підхід не завжди зручний, особливо в тому випадку, якщо кількість варіантів ходу програми велика. У середовищі Delphi є інструкція case, яка дозволяє ефективно реалізувати множинний вибір. У загальному вигляді вона записується таким чином:
case Селектор of
список1:begin{Інструкції 1}end;
список2:begin{Інструкції 2}end;
списокN:begin{Інструкції N}end;
else
begin{Інструкції)end;
end;
де
Селектор – вираз, значення якого визначає подальший хід виконання програми (тобто послідовність інструкцій, яка буде виконана);
списокN – список констант. Якщо константи є діапазоном чисел, то замість списку можна вказати першу і останню константу діапазону, розділивши їх двома точками. Наприклад, список 1, 2, 3, 4, 5, 6 може бути замінений діапазоном 1..6.
Виконується інструкція case наступним чином:
1. Спочатку обчислюється значення виразу-селектора.
2. Значення виразу-селектора послідовно порівнюється з константами зі списків констант.
3. Якщо значення виразу збігається з константою зі списку, то виконується відповідна до цього списку група інструкцій. На цьому виконання інструкції case завершується.
4. Якщо значення виразу-селектора не збігається ні з однією константою з усіх списків, то виконується послідовність інструкцій, наступна за else.
Синтаксис інструкції case дозволяє не писати else і відповідну послідовність інструкцій.
Приклад 2
Програма перерахунку ваги з фунтів у кілограми. Програма враховує, що в різних країнах фунт «важить» по-різному. Наприклад, в Україні фунт дорівнює 409,5 грамів, в Англії – 453,592 грами, а в Німеччині, Данії та Ісландії фунт важить 500 грамів.
У діалоговому вікні програми для вибору країни використовується список Країна.
Рисунок 1 – Діалогове вікно програми Приклад використання case
Для вибору назви країни використовується список – компонент ListBox. Значок компонента ListBox знаходиться на вкладці Standard (рис. 2). Додається список до форми додатка так само, як і інші компоненти. У таблиці 3 наведені властивості компонента ListBox.
Рисунок 2 – Компонент ListBox
Таблиця 3 – Властивості компонента ListBox
Властивість |
Визначає |
Name |
ім’я компоненту (у програмі використовується для доступу до властивостей компоненту) |
Items |
елементи списку |
Itemindex |
номер вибраного елемента списку (номер першого елементу списку дорівнює нулеві) |
Left |
відстань від лівої границі списку до лівої границі форми |
Top |
відстань від верхньої границі списку до верхньої границі форми |
Height |
висоту поля списку |
Width |
ширину поля списку |
Font |
шрифт, що використовується для відображення елементів списку |
Parent-Font |
ознаку спадкоємства властивостей шрифту батьківської форми |
Найбільш цікаві властивості Items і Itemindex. Властивість Items містить елементи списку. Властивість Itemindex задає номер обраного елемента списку. Якщо жоден з елементів не обраний, то значення властивості дорівнює мінус одиниці. Список може бути сформований під час створення форми або під час роботи програми. Для формування списку під час створення форми треба у вікні Object Inspector вибрати властивість Items і натиснути на кнопці запуску редактора списку рядків (рис. 3).
Рисунок 3 – Кнопка запуску редактора списку
У діалоговому вікні String List Editor (рис. 4) потрібно ввести список, набираючи кожен елемент списку в окремому рядку. Після введення чергового елемента списку для переходу до нового рядка необхідно натиснути клавішу <Enter>. Після введення останнього елемента клавішу <Enter> натискати не треба. Завершивши введення списку, слід клацнути на кнопці Оk.
Рисунок 4 – Редактор списку
В таблиці 4 перераховані компоненти форми програми, а в таблиці 5 наведені значення властивостей компонентів.
Таблиця 4 – Компоненти форми
Компонент |
Призначення |
ListBox1 |
Для вибору країни, для якої треба виконати перерахунок |
Edit1 |
Для вводу ваги у фунтах |
Label1, Label2, Label3 |
Для виводу пояснювального тексту про призначення полів вводу |
Label4 |
Для виводу результату перерахунку |
Button1 |
Для активізації процедури перерахунку ваги з фунтів у кілограми |
Таблиця 5 – Значення властивостей компонентів
Властивість |
Значення |
Form1.Caption |
Приклад використання case |
Edit1.Text |
|
Label1.Caption |
Виберіть країну, введіть кількість фунтів і натисніть на кнопці Обчислити |
Label2.Caption |
Країна |
Label3.Caption |
Фунтів |
Button1.Caption |
Обчислити |
Процедура перерахунку, яка виконується в результаті натискання на командній кнопці Обчислити, примножує вагу в фунтах на коефіцієнт, що дорівнює кількості кілограмів в одному фунті. Значення коефіцієнта визначається за номером обраного зі списку елемента.
У лістингу 1 наведено текст програми перерахунку ваги з фунтів у кілограми.
Лістинг 1. Перерахунок ваги з фунтів у кілограми
unit Unit1;
