Операції порівняння
Операції порівняння називають щеопераціями відносини(relation operations), оскільки в них здійснюється оцінка взаємозв'язку (відносин) двох операндів. Підоперандомрозуміється те, над чим виконується операція.
У таблиці 6 перерахованіоператори, що використовуються для позначення операцій порівняння у мовах програмування. Результат порівняння може бути істинним, або хибним (Трує або False). Пріоритет операцій порівняння нижчий, ніж у арифметичних операцій.
Приклади операторів порівняння у різних мовах програмування
менше або дорівнює
Логічні операції
Складне висловлювання можна побудувати з простих за допомогою логічних операцій: заперечення, кон'юнкції, диз'юнкції, імплікації та логічних виразів, що є комбінацією логічних операцій.
Логічні операції іноді називають булевими, оскільки взяті вони з булевої алгебри. Операндами в них виступають булеві величини і повертають вони теж булеві значення. У таблиці 7 наведено основні логічні оператори, що використовуються в різних мовах програмування, в порядку зменшення пріоритету. При цьому слід зазначити, що у різних мовах програмування логічні операції можуть мати різний пріоритет щодо інших операцій – арифметичних та порівняння. Наприклад, у Бейсику пріоритет логічних операцій нижчий, ніж операцій порівняння. У Паскалі – навпаки, а пріоритет оператора не навіть вищий, ніж у арифметичних операцій.
Основні логічні оператори
Назва логічної операції
логічне заперечення «НЕ» (інверсія)
логічне «І» (кон'юнкція)
логічне «АБО» (диз'юнкція)
Найпростіший логічний оператор – NOT. Він передує єдиному операнду і повертає його логічну протилежність- Інакше кажучи, "заперечує" операнд. Наприклад, вираз NOTTrueдає в результатіFalse(бульове значення, зворотнеTrue); а вираз NOT(4 = 60 AND S = 60 AND S 100.
Правила виконання операцій у алгебрі логіки визначаються поруч аксіом, теорем та наслідків. Зокрема, для алгебри логіки виконуються такі закони:
1) сполучний (асоціативність):
(а OR b) OR = а OR (b OR с);
(а AND b) AND = а AND (b AND с).
2) переміщувальний (комутативний):
а AND b = b AND а.
3) розподільний (дистрибутивність кон'юнкції та диз'юнкції щодо диз'юнкції та кон'юнкції):
а AND (b OR с) = а AND b OR а AND с;
а OR b AND = (а OR b) AND (а OR с).
Справедливі також такі співвідношення: NOT NOT a = a; а OR а AND b = а; NOT a OR NOT b = NOT (a AND b) та ін.
Логічні операції можуть здійснюватися як над булевими величинами, а й над бітами операндов. У цьому випадку логічна операція повертає порозрядний результат, який або правдивий (1), або покладений (0). У мовах програмування можуть бути спеціальні оператори побітового виконання логічних операцій. Наприклад, у «Сі++» та «Ява» порозрядним (побітовим) операціям НЕ, І, АБО відповідають оператори
, &, (порівняйте з операторами табл. 7).
У Бейсику використовуються тільки побітові логічні операції, а операнди подаються у восьми-, шістнадцяти- або тридцятидворозрядному додатковому коді. При цьому булевим значеннямFalseіТруєвідповідають десяткові значення 0 і -1, так, 0 - число, в якому всі біти обнулені, а -1 - двійкове число, всі біти якого встановлені 1 (див. табл. 3).
ОпераціямвиключнеАБО(нерівнозначність),еквівалентність(рівнозначність, ↔) таімплікація(якщо то, →) у Бейсику відповідають оператори XOR, EQV та IMP. Результат логічної операції визначається порозрядно згідно з таблицею 8. Оператори наведені в порядку зменшення їх пріоритету.