Висловлювання— це твердження про певний об’єкт або про зв’язки між об’єктами і про яке можна однозначно сказати, істинне воно чи хибне.
Основною властивістю висловлювання є його істинність. Якщо висловлювання істинне, то вважають, що значення його властивості істинність дорівнює true (англ. true - правда). Якщо висловлювання хибне, то вважають, що значення його властивості істинність дорівнює false (англ. false - хиба, хибність).
Висловлювання можна розглядати як логічний вираз.
Логічним виразом називають вираз, який може набувати одне з двох значень: true або false.
Приклад:
Якщо висловлювання істинне, то вважають, що значення відповідного логічного виразу дорівнює true. Тобто, «Київ — столиця України» = true, (2 * 5 - 4 = 6) = true, (4 < 12) = true.
Якщо висловлювання хибне, то вважають, що значення відповідного логічного виразу дорівнює false. Тобто «Це підручник для учнів сьомого класу» = false, (2 * 7 + 3 = 12) = false, (3 > 5) = false.
Змінні логічного типу
Значення логічного виразу можна присвоювати певній змінній.
x := 2 + 12/3 = 6; // х=true
у := 32 < 13; //у=false.
У мові Object Pascal для величини, значенням якої є True або False, використовують логічний тип (Boolean).
Приклад:
Створити змінні логічного типу:
var x, y: boolean;
begin
x := true; y := false;
var x, y: boolean;
begin
x := true; y := false;
Змінні логічного типу також вважаються логічними виразами.
Прості умови
Простий логічний вираз (проста умова) утворюється за допомогою операції відношення:
Логічні вирази набувають значення True або False.
Приклад:
Обчислити значення логічних виразів:
var Х, Y: Integer; A: Boolean;
begin
X := 5; Y := 2;
A := X > Y; // A = True, тому що істинна умова X > Y
A := X < Y; // A = False
A := X – 4.5 < Y * 2; // A = True
end;
var Х, Y: Integer; A: Boolean;
begin
X := 5; Y := 2;
A := X > Y; // A = True, тому що істинна умова X > Y
A := X < Y; // A = False
A := X – 4.5 < Y * 2; // A = True
end;
Складені умови
Складений вираз (складена умова) — кілька простих виразів, з’єднаних логічними операціями and (і), or (або), хоr (виключне або), not (ні).
Запереченнямлогічного виразу x називають логічний вираз, значення якого дорівнює true, якщо значення логічного виразу x дорівнює false, і дорівнює false, якщо значення логічного виразу x дорівнює true.
Тобто якщо x = true, то not x = false, і якщо x = false, то not x = true.
Кон’юнкцієюдвох логічних виразів x і у називають логічний вираз, значення якого є true, якщо значення кожного з логічних виразів x і у є true; і false, якщо значення хоча б одного з логічних виразів x або у є false.
Кон’юнкція двох логічних виразів x і у позначається x and у (англ. and — і, та).
Висловлювання «Число 36 кратне 3 і число 36 кратне 2» є кон’юнкцією двох висловлювань: «Число 36 кратне 3» та «Число 36 кратне 2».
Зверни увагу!
Прості умови, які беруть участь у складеній умові, за правилами Паскаля беруться в дужки.
Диз’юнкцієюдвох логічних виразів x і у називають логічний вираз, значення якого є true, якщо значення хоча б одного з логічних виразів x або у є true; і false, якщо значення кожного з логічних виразів x і у є false.
Диз’юнкція двох логічних виразів x і у позначається x or у (англ. or —або).
Висловлювання «11 ≤ 21» (11 менше або дорівнює 21) є диз’юнкцією двох висловлювань: «11 < 21» та «11 = 21».
Висловлювання «11 ≤ 21» (11 менше або дорівнює 21) є диз’юнкцією двох висловлювань: «11 < 21» та «11 = 21».
Часто використовують логічні вирази, що містять кілька логічних операцій. Наприклад: (x or у) and (x or z).
Таблиці істинності
Для обчислення значень логічного виразу можна використати таблицю істинності. У ній потрібно розглянути всі можливі значення змінних логічного типу, що входять до цього виразу.
Таблиця істинності — це прямокутна таблиця, що виражає відповідність між усіма наборами величин змінних і значеннями логічної функції.
Проілюструємо виконання логічних операцій AND і OR за до-помогою електричних схем:
Логічні операції, операції відношення й арифметичні операції можуть зустрічатися в одному виразі. Обчислення таких виразів виконуються зліва направо з урахуванням пріоритету операцій:
1) not;
2) and, *, /, div, mod;
3) or, xor, +, –;
4) операції порівняння.
1) not;
2) and, *, /, div, mod;
3) or, xor, +, –;
4) операції порівняння.
Приклад:
Розглянемо приклади складених логічних виразів:
а) not (А <= 3) — те саме, що А > 3.
б) (A > 10) and (A < 18) — набуває значення True, якщо значення A належить проміжку від 10 до 18.
в) (A <= 10) or (A >= 18) — набуває значення True, якщо значення A не належить проміжку від 10 до 18.
а) not (А <= 3) — те саме, що А > 3.
б) (A > 10) and (A < 18) — набуває значення True, якщо значення A належить проміжку від 10 до 18.
в) (A <= 10) or (A >= 18) — набуває значення True, якщо значення A не належить проміжку від 10 до 18.
Визначити, чи належить точка з координатою x відрізку [–5; 5].
Точка належить відрізку, якщо справджується нерівність –5 x 5. У програмуванні таку подвійну нерівність записують як складену умову:
(х >= –5) and (х <= 5).
• StrToBool(S) — перетворення рядка символів S на логічне значення;
• BoolToStr(b,True) — перетворення логічного значення на рядок символів.
Приклад:
Обчислити значення логічних виразів:
var X, Y, Z: Integer; A: Boolean;
begin
X := 1; Y := 2; Z := 3;
A := (X < Y) and (Y < Z); // A = True
A := (X > Y) or (Y > Z); // A = False
A := (X > Y) xor (Y < Z); // A = True
end;
var X, Y, Z: Integer; A: Boolean;
begin
X := 1; Y := 2; Z := 3;
A := (X < Y) and (Y < Z); // A = True
A := (X > Y) or (Y > Z); // A = False
A := (X > Y) xor (Y < Z); // A = True
end;
Перетворення типів
При виведенні логічних значень треба перетворювати логічне значення на рядок символів, і навпаки, при введенні перетворювати рядок символів на відповідне логічне значення. Для цього в мові Object Pascal існують вбудовані функції перетворення типів:• StrToBool(S) — перетворення рядка символів S на логічне значення;
• BoolToStr(b,True) — перетворення логічного значення на рядок символів.
Якщо другий аргумент функції BoolToStr дорівнює True, то отримуємо значення функції у вигляді рядка ‘True’ або ‘False’. Якщо другий аргумент замінити на False, то значенням функції для істинного b буде рядок ‘–1’, а для хибного — ‘0’.
Джерела:
Інформатика : підруч. для 8 кл. закл. заг. серед.освіти / Йосиф Ривкінд [та ін.]. — Київ : Генеза, 2021.
Інформатика : підруч. для 8 кл. загальноосвіт. навч. закл. / О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов. — Х. : Вид-во «Ранок», 2016