logo
методичка_1_05_ВНУ

Логічний тип

Логічні змінні можуть мати одне з двох значень: true (істин­не) або false (хибне). Як і maxint, ці значення належать до наперед визначених сталих, тобто їх не треба описувати. Ло­гічні змінні найчастіше використовують для керування послі­довністю виконання операторів програми.

Є три логічні операції, які, будучи застосовані до логічних операндів, приводять до результату типу boolean:

and - логічна кон'юнкція;

or - логічна диз'юнкція;

not - логічне заперечення.

У ТР є ще одна операція: xor - додавання за модулем 2. Наприклад, якщо описати

var

х, у, z: boolean;

то можна записувати вирази, які будуть мати логічні значення

х and у or z

not у and x

х andor z)

Послідовність виконання логічних операцій така: not, and, or. Для її зміни використовують дужки.

Правила виконання логічних операцій і у - логічні змін­ні) наведені в табл. 2.3.

Таблиця 2.3. Таблиця істинності логічних операцій

x

y

not x

x and y

x or y

x xor y

true

true

false

true

true

false

true

false

false

false

true

true

false

true

true

false

true

true

false

false

true

false

false

false

Логічний (булів) результат дають також операції порівнян­ня: <, <=, =, <>, >=, >, in. Операнди цих операцій можуть бути дійсного, цілого, а також логічного типу. Значення логічного типу можна порівнювати, оскільки прийнято, що false<true.

До операндів дійсного типу не варто застосовувати опера­цію "дорівнює", оскільки умова може не виконуватися внаслі­док неточного відображення дійсних чисел у пам'яті комп'юте­ра, а також помилок заокруглення під час обчислення виразів дійсного типу. Тому замість а=b ліпше записати abs(a-b)<E, де Е - деяке мале значення, що залежить від порядку значень а і b. Якщо їхній порядок невідомий, то Е є функцією одного з них, наприклад:

abs(a-b)<abs(a*1E-6) - порівняння з точністю до 0.000001.

Операції порівняння мають нижчий пріоритет виконання, ніж логічні операції, тому у разі потреби використовують дужки.

Функції eoln і eof дають бульові значення, їхніми парамет­рами можуть бути імена файлів. Якщо параметра нема, то за замовчуванням мають на увазі файл input (файл уведення).

Функція eoln дає true, якщо з файлу введення надійшов кінець рядка; в усіх інших випадках - false.

Функція eof дає true, якщо файл перебуває в стані "кінець файлу", тобто процес дійшов до кінця, в інших випадках - false. Спроба прочитати щось з файлу після того, як значення функції стало true, призведе до помилки. Тому перед читанням треба перевіряти кінець файлу:

if eof

then write('кінець файлу')

else read(sym);

Функція odd має цілочисловий аргумент; odd(i) дає true, якщо і непарне, і false, якщо і - парне.

Якщо x - змінна логічного типу, то оператор процедури write(x) виведе TRUE або FALSE, залежно від значення змінної.

Процедура read не може мати аргументів бульового типу.