Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.22 Mб
Скачать

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.