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

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