"Информатика", Поляков К.Ю., Еремин Е.А.
Логические выражения описывают условия и принимают одно из двух значений: истина или ложь. Они нужны, чтобы проверять сравнения, объединять несколько условий и управлять действиями алгоритма или программы. Главные операции — НЕ, И и ИЛИ. Чтобы не ошибиться в сложном выражении, используют скобки, установленный порядок действий и таблицы истинности, показывающие результат для всех возможных значений переменных.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическое выражение — выражение, результатом которого является одно из двух значений: истина или ложь. Например, 7 > 3 — логическое выражение, потому что сравнение можно однозначно оценить. Такие выражения нужны для проверки условий в алгоритмах и программах.
Логическая переменная — переменная, принимающая только значения «истина» и «ложь». Её значение показывает, выполнено ли некоторое условие. Например, переменная готово может быть истинной после завершения работы программы и ложной до этого.
Логическая операция — действие над логическими значениями или выражениями. К основным операциям относятся отрицание НЕ, конъюнкция И и дизъюнкция ИЛИ. С их помощью несколько простых условий объединяют в одно составное выражение.
Таблица истинности — таблица, показывающая результат логического выражения для всех наборов значений входящих в него переменных. Она позволяет не угадывать ответ, а последовательно проверить каждый вариант. Особенно полезна таблица при разборе длинных выражений с несколькими операциями.
Сравнение чисел превращается в логическое выражение, потому что его результат можно выразить только двумя способами. Например, 5 < 9 истинно, а 5 > 9 ложно; сами числа при этом не становятся результатом сравнения. Такой результат удобно передавать следующей операции или использовать как условие команды.
Операция НЕ меняет значение выражения на противоположное: НЕ истина даёт ложь, а НЕ ложь — истину. Это нужно, когда требуется проверить невыполнение условия, например НЕ (дверь открыта). Скобки показывают, какое именно выражение отрицается, поэтому они помогают не изменить смысл случайно.
Операция И объединяет условия, которые должны выполниться одновременно. Выражение A И B истинно только тогда, когда истинны и A, и B; при ложности хотя бы одного условия весь результат ложен. Например, доступ разрешён, если пользователь ввёл правильный пароль И подтвердил действие.
Операция ИЛИ подходит, когда достаточно выполнения хотя бы одного условия. Выражение A ИЛИ B ложно только в случае, когда оба условия ложны; если истинны оба, результат также истинен. Например, сообщение можно показать, если нажата кнопка ИЛИ сработал таймер.
Составное выражение строится из логических переменных, сравнений и операций, поэтому его удобно вычислять по частям. Сначала находят значения простых сравнений, затем объединяют их по операциям и получают общий результат. Таблица истинности систематизирует этот процесс и показывает ответ для каждого возможного набора входных значений.
Скобки выполняются раньше остальных действий и явно задают, какую часть нужно вычислить первой. Если скобок нет, применяют приоритет операций: обычно сначала выполняют НЕ, затем И, затем ИЛИ. При сомнении выражение лучше дополнить скобками, чтобы порядок был виден и человеку, и программе.
| A | B | НЕ A | A И B | A ИЛИ B |
|---|---|---|---|---|
| Истина | Истина | Ложь | Истина | Истина |
| Истина | Ложь | Ложь | Ложь | Истина |
| Ложь | Истина | Истина | Ложь | Истина |
| Ложь | Ложь | Истина | Ложь | Ложь |
В первых двух столбцах перебраны все четыре набора значений двух переменных. Затем для каждой строки отдельно вычисляют НЕ A, A И B и A ИЛИ B. По строке можно быстро проверить нужную комбинацию, а по столбцу — увидеть все результаты одной операции.
Нужно выполнить сравнение двух чисел и заменить его логическим значением. Сравниваем левую часть с правой: число 7 действительно больше 3. Поэтому результатом будет значение «истина».
Ответ: выражение истинно.
Сначала вычисляем два сравнения в скобках, не применяя ИЛИ к исходным числам. Условие 5 < 2 ложно, а условие 8 = 8 истинно. После этого остаётся выражение Ложь ИЛИ Истина.
Ответ: выражение истинно.
Значение переменной нужно подставить до выполнения логических операций. При x = 3 условие x > 4 ложно, а условие x < 1 тоже ложно; их объединение через ИЛИ ложно. Внешнее НЕ меняет этот результат на противоположный.
Ответ: выражение истинно.
Иногда считают, что ИЛИ истинно только при истинности ровно одного условия. Так происходит из-за привычного бытового смысла слова «или», но в логике оно включает и случай, когда истинны оба условия. Проверьте себя по таблице: строка «Истина; Истина» в столбце A ИЛИ B содержит значение «Истина».
Другая ошибка — игнорировать скобки и порядок операций. Из-за этого одинаковые части выражения могут быть объединены не так, как задумано. Сначала расставьте скобки или выпишите промежуточные результаты, а затем выполняйте действия по приоритету.
Отрицание иногда ошибочно заменяют противоположным знаком сравнения, не выяснив область действия НЕ. Например, НЕ (A ИЛИ B) отрицает всё выражение, а не только A. Чтобы проверить себя, выделите скобками часть после НЕ и только потом поменяйте её значение.
При составлении таблицы истинности могут пропускаться наборы или появляться дубликаты. Для двух переменных должно быть ровно четыре комбинации: Истина–Истина, Истина–Ложь, Ложь–Истина и Ложь–Ложь. Перечитайте первые столбцы перед вычислением итогов.
До изучения логических выражений нужно уметь сравнивать числа и понимать смысл условий. Сравнение даёт исходное логическое значение, с которым затем работают операции НЕ, И и ИЛИ. Без этого трудно правильно разобрать даже короткое составное выражение.
В алгоритмах и программах логические выражения записывают в условиях ветвления и циклов. По результату условия программа выбирает действие или решает, нужно ли повторять команды. Поэтому умение вычислять такие выражения помогает составлять работающие алгоритмы.
Чем логическое выражение отличается от арифметического?
Арифметическое выражение даёт число, а логическое — только истину или ложь. Например, 3 + 5 = 8 — арифметическое вычисление, а 3 + 5 > 10 — логическое выражение.
Может ли логическое выражение иметь значение, отличное от истины или лжи?
Нет, в классической логике у него только два результата: истина или ложь. Даже сравнение чисел сначала превращается именно в одно из этих значений.
Когда выражение A ИЛИ B считается истинным?
Оно истинно, если истинно хотя бы одно из условий. Если истинны оба условия, результат тоже истина.
Как определить, к какой части выражения относится НЕ?
Сначала нужно посмотреть на скобки: НЕ (A ИЛИ B) относится ко всему выражению внутри них. Если скобок нет, учитывают установленный приоритет операций и записывают скобки явно.
Зачем составлять таблицу истинности?
Таблица истинности позволяет проверить результат выражения при каждом наборе значений переменных. Она особенно полезна для длинных выражений, где легко пропустить случай или перепутать операцию.
§ 11. Логические выражения