Логічні вирази, змінні, константи мовою Turbo Pascal
Мета: Засвоїти теоретичний матеріал про логічні змінні, розвинути навички їх складання та визначення їх значень.
Орієнтовний план:
- Засвіїти теоретичний матеріал;
- Виконати завдання 1 – визначення значень логічних функцій.
- Виконати завдання 2 – скласти логічні вирази мовою Turbo Pascal.
Контролюються знання: Лабораторна робота №4,5, Контрольна робота №1, Диференційований залік, Комплексна контрольна робота, іспити з дисципліни.
Завдання:
- Розглянути приклади програм мовою Turbo Pascal ;
- Скласти програми мовою Turbo Pascal згідно варіанту.
Рекомендована література:
1. Верлань В.А. Інформатика, комп’ютерна техніка, комп’ютерні технології – К: Каравела, 2003
2. Метод. посібник Мова програмування Turbo Pascal - П: ПТНГУ, 2008
Теоретичний матеріал та завдання для самостійної роботи
Часто при розрахунках виникають ситуації, коли подальші дії виконуються по різним правилам, формулам залежно від того, чи виконуються певні співвідношення величин. Наприклад, при розв’язку квадратного рівняння спочатку знаходимо дискримінант, а потім, залежно від того, яке він має значення, додатне, нульове чи від’ємне, далі знаходимо або 2 корені, або один, або взагалі нічого не розраховуємо, а пишемо в відповідь „Рівняння не має дійсних коренів”. Маємо 3 різні гілки розрахунків, але виконуватись буде одна. Для визначення розгалуження в алгоритмі використовуємо конструкцію: ЯКЩО <УМОВА> ТО <ГІЛКА 1> АБО <ГІЛКА>;
Умовою може бути логічний вираз, або змінна, якій заздалегідь присвоєний логічний вираз. Найпростіший логічний вираз може мати вигляд співвідношення величин на знаки ³, £, <, =, >, ¹. Логічний вираз може мати одне з двох значень: ІСТИНА (так, умова виконується), або ПОХИБКА (ні, умова не виконується). Іноді треба перевірити кілька співвідношень, в цьому випадку поєднуємо їх союзами І, АБО, що відповідає операціям кон’юнкції та диз’юнкції з логічними виразами.
На мові Turbo Pascal не існує символів ³, £, ¹, бо їх не існує на клавіатурі, тому в логічних виразах їх аналогами є комбінації: >=, <=, <>. Для поєднання кількох виразів в один використовуються слова and(також), or(або), not(не). Розглянемо логічні висловлювання, які можуть бути умовою розгалуження і їх подання на мові Turbo Pascal:
4) Для дійсного xÎ[-2; 5], i x¹0 - на мові Turbo Pascal: (x>=-2) and (x<=5) and (x< >0);
5) Для цілого z³20 кратного 3 - на мові Turbo Pascal: (z>=20) and (z mod 3 = 0);
6) Для дійсного xÏ[-2; 5] - на мові Turbo Pascal: (x>5) or (x<-2).
Логічний вираз може мати одне з значень: TRUE (ІСТИНА) або FALSE (ПОХИБКА). Значення логічної змінної чи виразу можна друкувати, але не можна вводити.
Розглянемо докладніше логічні операції:
And (також)– логічний добуток або кон’юнкція двох виразів. Операція передбачає одночасне
A | B | A and B | ||
false | false | false | ||
false | true | false | ||
true |
| false | ||
true | true | true |
виконання кожного виразу, які вона поєднує і результатом кон’юнкції буде TRUE (ІСТИНА), тільки якщо такі значення має кожен вираз – множник.
Якщо позначити два вирази А і В, то таблиця значень операції кон’юнкції матиме такий вигляд.
A | B | A or B | ||
false | false | false | ||
false | true | true | ||
true |
| true | ||
true | true | true |
Or (або) – логічне додавання або диз’юнкція передбачає виконання хоча б одного з виразів, що поєднані операцією. Таблиця істинності операції свідчить про те, що результатом операції буде TRUE, якщо таке значення мають хоча б одне з додатних.
Not (не) – протиріччя, або інверсія, перетворює значення виразу на зворотнє.
Якщо в вираз входять кілька з вказаних операцій послідовно, то їх виконання має такий пріоритет: Впершу черзу виконується інверсія, потім кон’юнкція, і останньою – диз’юнкція.
Спробуємо визначити значення логічних виразів:
1. (z>=20) and (z mod 3 = 0); для z = 40 значення виразу z>=20 буде true, але значення z mod 3 = 0 буде false, тому і результат згідно табл.1 буде мати значення false.
2. (x>=-2) and (x<=5) and (x< >0) ; для х = 1 виконується кожне з співвідношень, то ж результат буде мати значення true. А для х = 6 виконується перше і третє співвідношень, а друге має значення false. Тому і весь вираз має значення false.
3. (x>5) or (x<-2); для х = 6 значення виразу x>5 буде true, а значення виразу x<-2 буде false, згідно табл.2 їх диз’юнкція має значення true.
Маємо програму опрацювання логічної та текстової інформації. Внесіть в програму зміни, які дозволять перевірити логічні вирази згідно Вашого варіанту. Діалог створіть на свій смак.:
Перевірити, чи серед 3-х чисел виконуються співвідношення: с∉[a;b] і с – ділиться на 3 . Початкові дані a, b - дійсні, с – ціле.
Завдання 1. Визначити значення приведених виразів для вказаних значень аргументів:
№ | Логічна функція | a | b | F(a, b) | a | b | F(a, b) |
((a >0) and (b>0)) or ((a <0) and (b<0)) | -3 | ||||||
((a>0) or (a<-5)) and (b mod 2 = 0) | -4 | ||||||
(a>=3) and (b<0) and (a<b) or (a=b) | -2 | ||||||
not ((a>=b) and (a>=0) and (b<=0)) | -3 | ||||||
((a>b) and (a>0)) or (not(a=b)) | -2 | -2 | -2 | ||||
((a>1) and (a<=8)) or (not (a<>b) | |||||||
not(a*b>0) or (a>b) and (b<0) | -2 | -1 | -1 | ||||
(a>-2) and (a<2) or (b>-2) and (b<2) | -3 |
Завдання 2. Запишіть вирази мовою Turbo Pascal:
1. Серед змінних цілого типу X, Y, Z – лише одне з них додатне, а 2 – від’ємні;
2. Серед змінних цілого типу X, Y, Z – всі мають однакові знаки і не дорівнюють 0;
3. Серед змінних цілого типу X, Y, Z – одне з них кратне 5 і всі – не дорівнюють 0;
4. Серед змінних цілого типу X, Y, Z найбільше за значенням Х і всі додатні;
5. Серед змінних цілого типу X, Y, Z тільки 2 з них рівні за значенням;
6. Серед змінних цілого типу X, Y, Z не всі однакові за знаком;
7. Серед змінних цілого типу X, Y, Z всі додатні і значення Х кратне Y і кратне Z;
8. Серед змінних цілого типу X, Y, Z – лише Х парне, інші – непарні.