
- •Лабораторна робота №2 Розгалужені структури ObjectPascal
- •1 Мета роботи
- •2 Основні теоретичні відомості
- •2.1 Оператор безумовного переходу goto
- •2.2 Логічні вирази
- •Varp,q: Boolean;
- •2.2.1 Операції відношення
- •2.2.2 Бупеві операції
- •2.2.3 Лорозрядні (побітові) булеві й сдвигові операції
- •2.2.4 Пріоритети й асоціативність операцій
- •2.3 Умовний оператор
- •2. 4 Оператор вибору варіанта
- •2.5 Приклади розв’язання задач із операторами ifі case
- •ShowMessage («Повідомлення»);
- •Xналежить до
- •Begin Readln
- •3.Контрольні запитання
- •4.Лабораторне завдання
2. 4 Оператор вибору варіанта
Оператор вибору варіанта є узагальненням умовного оператора: він дає можливість виконувати один з деяких операторів в залежності від значення певного виразу, що називається селектором.
У загальному вигляді оператор має вигляд :
case<селектор>of
<список-констант-1> : < оператор 1>;
<список-констант-2> : < оператор 2>;
……………………………………………
<список-констант-№> : < оператор N>;
else< оператор N+l>end;
Тут case(у разі), of(із), end(кінець) - службові слова;
<селектор> — вираз будь-якого скалярного типу, окрім дійсного; відповідно з цим і списки констант не можуть мати дійсний тип;
<оператор> - будь-який оператор мови, зокрема складений;
<список констант> - список відокремлених комами можливих значень селектора. Ці константи повинні мати той самий тип, що і селектор, вони називаються позначками варіантів. Позначка варіантів не описується у розділі Label, на неї не можна посилатися в операторі goto.
Оператор варіанта діє у такий спосіб. Якщо значення селектора дорівнює значенню однієї з констант, то виконується оператор, який помічений цією константою (позначкою). Після цього керування передається за межі оператора варіанта.
Якщо значення селектора не збігається з жодною з констант, то виконується оператор N+l. Else- необов’язкова частина. Якщо вона відсутня і значення селектора не збігається з жодною з позначок, то керування передається за межі оператора. На відміну від оператора if, перед elseнеобхідно ставити “;
Наприклад,
casenomer of
2: y:=g;
4: y:=g*x;
6: y:=g*sqrt (abs(X));
end;
Якщо селектор nomerдорівнюватиме 4, то виконається оператор y:=g*x, і управління буде надано операторові, розміщеному після слова End.
У операторі варіанта в якості константи припускається використання списку констант.
Наприклад,
casesof
‘+’, ‘-‘, ‘*’, ‘/’:p:=1;
'а', ‘b’: р:=2;
‘;’: р:=3;
end;
Змінна sмає бути описана у розділі опису як символьна. Якщо значенням sбуде один із символів‘+’, ‘-‘, ‘*’, ‘/’, то змінна р матиме значення 1. Якщозначенням sбуде символ 'а' або 'b', то р набере значення 2. Якщо sприйме значення ‘;’ то р дорівнюватиме 3.
Тип виразу селектора може бути визначено користувачем.
2.5 Приклади розв’язання задач із операторами ifі case
Приклад 1. Визначити приналежність заданого дійсного числа х до одного з двох відрізків: [а,Ь] або [c,d].
Якщо х належить одному з відрізків, то вивести повідомлення “Належить”, у противному разі - “Не належить”.
Пояснення.Виведення у вікно повідомлення реалізовується процедурою ShowMessageабо функцією MessageDlg. Процедура ShowMessageвиводить на екран просте діалогове вікно з текстом повідомлення з однією командною кнопкою ОК. Загальний вигляд процедур ShowMessageтакий:
ShowMessage («Повідомлення»);
Заголовок вікна повідомлення у цьому разі збігається з ім'ям файла проекту.
Функція MessageDlgдозволяє додати повідомлення однієї зі стандартних позначок Windows, наприклад, позначкою “Увага”, а також задати кількість і тип командних кнопок.
Схема алгоритму програми зображена на рис. 2.4.
Початок