- •Лабораторна робота №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.2.1 Операції відношення
Операції відношення використовуються для порівняння двох виразів. Вони повертають значення true(істина), якщо вказані відношення виконуються і false(хибність) - в іншому разі. Операції відношення подано в табл. 2.2.
Таблиця 2.2 Операції відношення
|
Позначення |
Операція |
Тип оператора |
Приклад |
|
= |
Дорівнює |
Прості, множини, покажчики, класи, посилання класів, інтерфейс, упаковані рядки |
і=а 5=5 -»true 6=7 ->false |
|
о |
Не дорівнює |
Прості, множини, покажчик, класи, посилання класів, інтерфейс, рядки, упаковані рядки |
х<>у 6<>7 -»true 5<>5 -» false |
|
< |
Менше |
Прості, рядки, упаковані ряд-ки, рСЬаг |
a<b |
|
> |
Більше |
Прості, рядки, упаковані ряд-ки, рСЬаг |
b>x |
|
<= |
Менше або дорівнює |
Прості, множини, рядки, упаковані рядки, рСЬаг |
шах<=у |
|
>= |
Більше або дорівнює |
Прості, множини, рядки, упаковані рядки, рСЬаг |
s>=min 7>=5 —> true 5 >=5 —> true 3>=5 -» false |
Тип результату у всіх випадках Boolean(логічний).
Операнди повинні мати сумісні типи, за винятком типів realта integer, які можуть порівнюватись один з одним. Рядки порівнюють за розширеними кодами множини символів ANSI.
Символьний тип трактують як рядки одиничної довжини. Упаковані рядки можна порівнювати лише за однакової кількості символів. Якщо упакований рядок з п символів порівнюють з типом string, то він трактується як рядок з довжиною п. Операції <, >, <= й >= можна застосувати до операндівPchar, тільки якщо обидва вказівники вказують на один й той самий масив символів.
Приклади відношень та їх результатів подано в табл. 2.3.
Таблиця 2.3 - Приклади результатів відношень
|
Вираз |
Результат |
|
у=3 |
false |
|
false<>true |
true |
|
‘abc’<’abd’ |
true |
|
‘abc’>’a’ |
true |
2.2.2 Бупеві операції
У булевих операціях використовують операндибулевих типів і повертають результат булевого типу - Boolean(табл. 2.4):
Таблиця 2.4 – Булевы операції
|
Позначення операцій |
Математичний запис |
Операція |
Тип операндів |
Приклад |
|
not |
—і |
Заперечення (логічне “НІ”) |
Boolean |
not a |
|
and |
л |
Логічне “І” |
Boolean |
у and (x>0) |
|
or |
V |
Логічне “АБО” |
Boolean |
a or b |
|
xor |
|
Логічне виключне “АБО” |
Boolean |
a xorb |
Компілятор Delphiпідтримує два режими розрахунків операцій ANDі OR: повний і скорочений. У повному режимі усі логічні вирази обчислюють до кінця, навіть якщо після розрахунків першого операнда результат визначено. У скороченому режимі розрахунок переривається, як тільки результат дорівнюватиме True. Тобто, якщо перший операнд дорівнює Trueі результатвизначено, то в скороченому режимі розрахунок перерветься без обчислень другого операнда. Операція компілятора {$В-}, що працює без додаткових вказівок, забезпечує скорочений режим розрахунків, а операція {$В+}-повний. Режим повних розрахунків можна також установити опцією CompileBooleanEvaluationу вікні компілятора.
