
- •1 Палітру компонентів Standart
- •2. Програмування простих обчислювальних процесів
- •2.1 Компоненти введення висновку, які використовуються при рішенні задач
- •2.2 Лінійний обчислювальний процес
- •2.3 Обчислювальний процес, що розгалужується
- •2.3.1 Умова
- •2.3.2.1 Інструкція if
- •If умова then
- •2.3.2 Інструкція case
- •2.3.4 Інструкція goto
- •2.4 Компоненти, які підтримують функції вибору
- •Блок-схема алгоритму
- •Блок схема алгоритму
- •Контрольні питання
- •Література
2.3.2 Інструкція case
У мові Delphi є інструкція case, яка дозволяє ефективно реалізувати множинний вибір. У загальному вигляді вона записується таким чином:
case Селектор of список1:
begin
{ інструкції 1 } end; список 2:
begin
{ інструкції 2 } end; список М:
begin
{ інструкції N }
end;
else
begin
{ інструкції )
end;
end;
де:
Селектор — вираз, значення якого визначає подальший хід виконання програми (тобто послідовність інструкцій, яка буде виконана);
Список N — список констант. Якщо константи є діапазоном чисел, то замість списку можна вказати першу і останню константу діапазону, розділивши їх двома крапками. Наприклад, список 1, 2, 3, 4, 5, 6 може бути замінений діапазоном 1..6.
Виконується інструкція case таким чином:
1. Спочатку обчислюється значення виразу-селектора.
2. Значення виразу-селектора послідовно порівнюється з константами із списків констант.
3. Якщо значення виразу співпадає з константою із списку, то виконується відповідна цьому списку група інструкцій. На цьому виконання інструкції саsе завершується.
4. Якщо значення виразу-селектора не співпадає ні з однією константою зі всіх списків, то виконується послідовність інструкцій, наступна за else.
Синтаксис інструкції case дозволяє не писати else і відповідну послідовність інструкцій. В цьому випадку, якщо значення виразу не співпадає ні з однією константою зі всіх списків, то виконується наступна за case інструкція програми.
Приклад. Як приклад використання інструкції case розглянемо програму, яка перераховує вагу з фунтів в кілограми. Програма враховує, що в різних країнах фунт "важить" по-різному. Наприклад, в Росії фунт рівний 409,5 грамів, в Англії — 453,592 грама, а в Німеччині, Данії і Ісландії фунт важить 500 грамів.
У діалоговому вікні програми, зображеному на мал. 4, для вибору країни використовується список Країна.
Рисунок 4 Діалогове вікно програми Приклад використання Case
Для вибору назви країни використовується список — компонент ListBox. Значок компоненту ListBox знаходиться на вкладці Standard.
Таблиця 13 Властивості компоненту ListBox
Властивість |
Визначає |
|
Name |
Ім'я компоненту. У програмі використовується для доступу до властивостей компоненту |
|
Items |
Елементи списку |
|
Itemindex |
Номер вибраного елементу списку. Номер першого елементу списку рівний нулю |
|
Left |
Відстань від лівої межі списку до лівої межі форми |
|
Top |
Відстань від верхньої межі списку до верхньої межі форми |
|
Height |
Висоту поля списку |
|
Width |
Ширину поля списку |
|
Font |
Шрифт, використовуваний для відображення елементів списку |
|
Parent-Font |
Ознака спадкоємства властивостей шрифту батьківської форми |
Найбільший інтерес представляють властивості Items і Itemindex. Властивість items містить елементи списку.
Властивість itemindex задає номер вибраного елементу списку. Якщо жоден з елементів не вибраний, то значення властивості рівне мінус одиниці.
Список може бути сформований під час створення форми або під час роботи програми.
Для формування списку під час створення форми треба у вікні Object Inspector вибрати властивість items і клацнути на кнопці запуску редактора списку рядків.
У діалоговому вікні String List Editor, що відкрилося, потрібно ввести список, набираючи кожен елемент списку в окремому рядку. Після введення чергового елементу списку для переходу до нового рядка необхідно натиснути клавішу <Enter>. Після введення останнього елементу клавішу <Enter> натискати не треба. Завершивши введення списку, слід клацнути на кнопці ОК.
Таблиця 14 Компоненти форми
Компонент |
Призначення |
ListBoxl |
Для вибору країни, для якої треба виконати перерахунок |
Editl |
Для введення ваги у фунтах |
Label1, Label2, Label3 |
Для виведення тексту, пояснення, про призначення полів введення |
Label4 |
Для виведення результату перерахунку |
Button1 |
Для активізації процедури перерахунку ваги з фунтів в кілограми |
Таблиця 15 Значення властивостей компонентів
Властивість |
Значення |
Form1 .Caption |
Приклад використання case |
Editl. Text |
|
Label1 . Caption |
Виберіть країну, введіть кількість фунтів і клацніть на кнопці Обчислити |
Label2 .Caption |
Країна |
Label3 . Caption |
Фунтів |
Button1 . Caption |
Обчислити |
Текст програми
procedure TForm1.ButtonlClick(Sender: TObject);
var
funt:real; // вага у фунтах
kg:real; // вага в кілограмах
k:real; // коефіцієнт перерахунку
begin
case ListBoxl.Itemindex of
0: k:=0.4095; // Росія
1: k:=0.453592; // Англія
2:k:=0.56001; // Австрія
3..5,7:k:=0.5; // Німеччина, Данія, Ісландія, Нідерланди
6: k:=0.31762; // Італія
end;
funt:=StrToFloat(Editl.Text);
kg:=k*funt;
label4.caption:=Editl.Text
+ ' ф. — це '
+ FloatToStrF(kg,ffFixed, 6,3)+ 'кг.';
end;
end.