Калькулятор истинности: все о логике для программиста

Калькулятор истинности — это инструмент для проверки логических выражений: подставляешь значения переменных (истина/ложь) и получаешь результат операции. В программировании без логики не обойтись: условия в if, циклы, фильтры и проверки строятся на операциях И, ИЛИ, НЕ и их комбинациях. В статье — что такое логика высказываний простыми словами, основные операции, таблицы истинности (конъюнкция, дизъюнкция, инверсия, импликация, эквивалентность, исключающее ИЛИ), порядок выполнения, законы алгебры логики и как это выглядит в коде.
Содержание
- Понятие логики высказываний
- Виды выражений: простые и сложные
- Основные логические операции
- Порядок обработки (приоритет операций)
- Таблицы истинности по операциям
- Законы алгебры логики
- Логика в программировании
Понятие логики высказываний
Логика высказываний — раздел логики, в котором утверждения рассматриваются как целое и принимают одно из двух значений: истина (true, 1) или ложь (false, 0). Из простых высказываний с помощью операций строят сложные; результат тоже либо истина, либо ложь.
В конце XIX века математики перевели рассуждения в символическую форму — так появилась математическая логика. Современные устройства и программы работают на тех же принципах: сравнение, ветвление и циклы — это применение логических операций к данным.
Рис. 1 — От высказываний к результату: истина или ложь
Виды выражений: простые и сложные
Простое выражение — одно утверждение, его результат сразу истина или ложь (например, «x > 0»).
Сложное выражение — составлено из нескольких простых с помощью операций (например, «x > 0 и x < 10»). Результат вычисляется по таблицам истинности операций. Такие конструкции называют формулами алгебры логики.
Рис. 2 — Простые и сложные логические выражения
Основные логические операции
В калькуляторе истинности и в программировании используются такие операции:
Дальше — как считается каждая операция и как выглядит её таблица истинности.
Порядок обработки (приоритет операций)
В сложном выражении операции выполняются в таком порядке (от высшего приоритета к низшему):
- Инверсия (НЕ)
- Конъюнкция (И)
- Дизъюнкция (ИЛИ)
- Импликация (→)
- Эквивалентность (↔)
Чтобы изменить порядок, в формулах и в коде используют скобки.
Рис. 3 — Приоритет логических операций
Таблицы истинности по операциям
Ниже — как считается каждая операция. По таким таблицам можно вручную проверить выражение или собрать калькулятор истинности.
Конъюнкция (И)
Конъюнкция — логическое И (умножение). Обозначения: ∧, AND, &, &&.
Правило: результат истина только когда оба операнда истина. Иначе — ложь.
Рис. 4 — Таблица истинности конъюнкции
Дизъюнкция (ИЛИ)
Дизъюнкция — логическое ИЛИ (сложение). Обозначения: ∨, OR, |, ||.
Правило: результат истина, если хотя бы один операнд истина. Ложь только когда оба ложны.
Рис. 5 — Таблица истинности дизъюнкции
Инверсия (НЕ)
Инверсия — отрицание (логическое НЕ). Обозначения: ¬, NOT, !.
Правило: результат противоположен операнду: если A истина → ¬A ложь; если A ложь → ¬A истина.
Рис. 6 — Таблица истинности инверсии
Импликация (следование)
Импликация — «если A, то B» (A → B). A — условие, B — следствие.
Правило: результат ложь только в одном случае — когда из истины следует ложь (A=1, B=0). Во всех остальных случаях — истина.
Рис. 7 — Таблица истинности импликации
Эквивалентность (равнозначность)
Эквивалентность — A и B одинаковы по истинности. Обозначения: ↔, ≡.
Правило: результат истина, когда A и B совпадают (оба 0 или оба 1). Иначе — ложь.
Рис. 8 — Таблица истинности эквивалентности
Исключающее ИЛИ (XOR)
Исключающее ИЛИ (XOR) — «ровно одно из двух истинно». Обозначения: ⊕, XOR, ^ (в части языков).
Правило: результат истина, когда A и B разные (0 и 1 или 1 и 0). Когда оба одинаковы — ложь. По сути «сложение по модулю 2».
Рис. 9 — Таблица истинности XOR
Законы алгебры логики
С помощью законов алгебры логики формулы можно упрощать и преобразовывать. Основные соотношения:
- Двойное отрицание: ¬¬A = A
- Коммутативность: A ∧ B = B ∧ A; A ∨ B = B ∨ A
- Ассоциативность: (A∧B)∧C = A∧(B∧C); (A∨B)∨C = A∨(B∨C)
- Дистрибутивность: A∧(B∨C) = (A∧B)∨(A∧C); A∨(B∧C) = (A∨B)∧(A∨C)
- Законы де Моргана: ¬(A∧B) = ¬A∨¬B; ¬(A∨B) = ¬A∧¬B
- Свойства 0 и 1: A∧1 = A; A∨0 = A; A∧0 = 0; A∨1 = 1
Рис. 10 — Основные законы алгебры логики
Логика в программировании
В коде логические операции встречаются в условиях, циклах и фильтрации:
- Условия:
if (x > 0 && x < 10),if (!loggedIn) - Циклы:
while (hasData && !error) - Исключающее ИЛИ: проверка «ровно одно из двух» (например, переключатель режима), в части языков — оператор
^для булевых или побитовый XOR
Калькулятор истинности онлайн помогает быстро проверить сложное выражение, но умение строить и читать таблицы истинности и знать приоритет операций пригодится при отладке и при изучении алгоритмов.
Рис. 11 — Операторы логики в коде
Выводы
- Калькулятор истинности проверяет логические выражения: подставляешь 0/1 (ложь/истина) и получаешь результат по таблицам операций.
- Логика высказываний оперирует только двумя значениями — истина и ложь; из простых выражений строятся сложные с помощью операций.
- Основные операции: конъюнкция (И), дизъюнкция (ИЛИ), инверсия (НЕ), импликация (→), эквивалентность (↔), исключающее ИЛИ (XOR). Порядок выполнения задаётся приоритетом; скобки его меняют.
- В программировании те же операции реализованы в условиях (
if,else), циклах и операторах&&,||,!, а также XOR там, где он есть. Умение строить таблицы истинности и знать законы алгебры логики помогает при отладке и при изучении алгоритмов.
Категории