Вираз, як ми вже знаємо, - це конструкція мови, що задає правила здобуття значень змінних та створення нових значень після застосування операцій. Значення арифметичного виразу – це число, а логічного виразу - це одна з двох логічних констант : TRUEабо FALSE, тобто “істина” або “неправда”. Їм відповідають числові коди - 1 та 0 .
Найпростіший логічний вираз ( ЛВ ) – це відношення :
АВ1 γ АВ2,
де АВ1 та АВ2 – арифметичні вирази, зокрема просто число або ім’я змінної ;
γ - це один із знаків операції порівняння : = , <> , < , > , <= , >= .
Порівнювати можна не тільки арифметичні вирази, а й сумісні прості значення, символи, рядки.
При порівнянні логічних значень вони замінюються їх кодами , тому TRUE > FALSE .
Приклад: x>=2 ; x*x+y*y <=r*r .
В ТП введені 4 логічні операції : NOT , AND , OR , XOR .
Правила виконання логічних операцій :
ì TRUE , якщо L1º FALSE
NOT L1 = í FALSE , якщо L1º TRUE
ì TRUE , якщо L1ºL2ºTRUE
L1 AND L2 = í
î FALSE в решті випадків
ì FALSE , якщо L1ºL2º FALSE
L1 OR L2 = í
î TRUE в решті випадків
ì TRUE , якщо L1 та L2 різні
L1 XOR L2 = í
î FALSE , якщо L1ºL2
Тут L1 та L2 – логічні константи, змінні або вирази , що мають значення TRUE або FALSE.
Результат логічної операції завжди має тип Boolean і може мати лише одне із двох значень: TRUE або FALSE .Логічні операції мають різні пріоритети і виконуються в такій послідовності : NOT, AND, OR, XOR.
Приклад : ( j<>0) AND ( (r/j)>x)
(x*x + y*y <= r*r) AND (x>=0) AND (y>=0)
За допомогою логічних виразів задаються умови належності значення певній множині або точки – області і таке інше. Взагалі , ЛВ використовуються в ТП для виконання розгалужень. Саме за допомогою ЛВ записуються умови вибору наступної послідовності дій. Звичайно ЛВ зустрічаються в програмі або в операторах управління з умовою , або в операторах присвоювання значень в логічні змінні.
Значення ЛВ обчислюється в такій послідовності: вирази в дужках, операції відповідно їх пріоритету , а саме: 1) NOT; 2) * , /, div, mod , AND ; 3) + , - , OR , XOR ; 4) < , > , = , <> , >= , <= .
Приклад: Знайти значення логічного виразу
NOT (x*x + y*y > r*r) AND (x>=0) AND (y>=0) при x=2, y=1, r=3
1)Значення виразів у дужках по порядку:
x*x + y*y =5 , r*r=9 Þ(x*x + y*y > r*r) º ( 5 > 9) º FALSE
( x>=0) º ( 2>=0) º TRUE
( y>=0) º ( 1>=0) º TRUE
2) Операція NOT:
NOT (x*x + y*y > r*r) º NOT (FALSE) º TRUE
3) Операції AND в порядку запису:
NOT (x*x + y*y > r*r) AND (x>=0) º TRUE AND TRUE º TRUE
NOT (x*x + y*y > r*r) AND (x>=0) AND (y>=0) º TRUE AND TRUE º TRUE
Таким чином, значення всього логічного виразу є TRUE .