"Информатика (базовый уровень)", Семакин И.Г., Хеннер Е.К., Шеина Т.Ю.
Логические величины описывают, истинно ли некоторое утверждение: их возможные значения — истина и ложь, которые в информатике часто обозначают числами 1 и 0. С помощью логических переменных и операций эти значения объединяют в выражения, похожие на условия в программе. Операция НЕ меняет значение на противоположное, И требует истинности обоих условий, а ИЛИ — хотя бы одного. Таблицы истинности помогают проверить результат для всех возможных наборов значений.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическая величина принимает одно из двух значений: истина или ложь. В информатике их часто обозначают числами 1 и 0 соответственно. Это соглашение позволяет записывать истинность утверждений в удобной для вычислений форме. При этом 0 и 1 обозначают не количество, а логическое состояние.
Логическая переменная обозначает логическую величину и может принимать значение 0 или 1. Обычно переменные записывают заглавными латинскими буквами, например A, B или C. Такая запись помогает кратко описывать утверждения, истинность которых может меняться. Подставляя в переменные значения, можно вычислить всё выражение.
Логическая операция задаёт правило, по которому из одного или нескольких исходных логических значений получают новое. Например, операция НЕ действует на одно значение, а И и ИЛИ — на два. Операции нужны, чтобы соединять условия и описывать более сложные ситуации. Их результат всегда остаётся истинным или ложным.
Логическое выражение состоит из логических переменных, значений и операций между ними. Пример такой записи — A И НЕ B. После того как значения переменных заданы, выражение можно вычислить по правилам операций. Его результатом будет 0 или 1, то есть ложь или истина.
Логика работает с высказываниями, о которых можно однозначно сказать, истинны они или ложны. Например, утверждение «число 8 чётное» истинно, а «число 8 меньше 3» ложно. Если истинность высказываний представить значениями 1 и 0, рассуждение можно превратить в последовательность вычислений. Это особенно полезно компьютеру: он проверяет условия по чётким правилам, а не по смысловым догадкам.
Отрицание обозначают НЕ и применяют к одному операнду — исходному значению операции. Оно меняет истинность высказывания на противоположную: если A = 1, то НЕ A = 0, а если A = 0, то НЕ A = 1. Так можно выразить, например, условие «не идёт дождь» через исходное утверждение «идёт дождь». Отрицание позволяет строить условие, противоположное заданному.
Конъюнкция, или логическое И, соединяет два условия и соответствует требованию выполнить их одновременно. Чтобы A И B было истинным, оба условия должны быть истинными; достаточно ложности хотя бы одного, чтобы результат стал ложным. Например, допуск может требовать одновременно наличия билета и документа. Такая операция нужна там, где для действия должны выполняться все перечисленные требования.
Дизъюнкция, или логическое ИЛИ, соединяет условия так, что достаточно выполнения хотя бы одного. Результат ложен только в случае, когда ложны оба операнда. Например, для входа может подойти пропуск или приглашение, а наличие обоих тоже удовлетворяет условию. В логике ИЛИ обычно включает случай, когда истинны сразу оба условия, поэтому его смысл шире бытового «или одно, или другое».
Для вычисления сложного выражения составляют таблицу истинности — перечень результатов для всех возможных наборов значений переменных. Сначала выполняют действия в скобках, затем учитывают приоритет операций: сначала НЕ, после него И, затем ИЛИ. Поэтому для каждой строки таблицы полезно записывать промежуточные значения. Такой порядок исключает неоднозначность и помогает найти, на каком шаге возникла ошибка.
| A | B | НЕ A | A И B | A ИЛИ B |
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 1 |
Каждая строка показывает один возможный набор значений A и B, а остальные столбцы — результаты операций для этого набора. Чтобы найти результат, выберите строку с нужными значениями переменных и прочитайте значение в столбце нужной операции. Для выражения с несколькими действиями сначала добавляют столбцы для промежуточных частей.
Здесь дана одна переменная и операция отрицания, поэтому других частей вычислять не нужно. НЕ меняет значение на противоположное. Применим это правило к заданному A.
Ответ: 0. Это означает, что при истинном A высказывание НЕ A ложно.
Операция ИЛИ даёт истину, когда истинен хотя бы один из операндов. Проверим оба значения: A ложно, а B истинно. Значит, условие «хотя бы одно истинно» выполняется.
Ответ: A ИЛИ B = 1. Для результата не требуется, чтобы оба операнда были истинными.
В выражении три переменные, поэтому нужно рассмотреть все 2³ = 8 наборов значений. Скобки показывают, что A И B вычисляется как отдельная часть, а НЕ C — другая. Затем результаты этих частей соединяются операцией ИЛИ.
| A | B | C | A И B | НЕ C | (A И B) ИЛИ НЕ C |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 | 1 |
Ответ: итоговые значения выражения по строкам — 1, 0, 1, 0, 1, 0, 1, 1. Например, в последней строке A И B равно 1, поэтому всё выражение истинно, хотя НЕ C равно 0.
Иногда считают, что A ИЛИ B истинно только при истинности обоих операндов. Это правило относится к конъюнкции, а путаница возникает из-за смешения названий операций. Проверьте себя по строке A = 1, B = 0: ИЛИ здесь даёт 1. Если записан 0, значит, применено не то правило.
Другая ошибка — считать, что A И B достаточно одного истинного операнда. Так рассуждают, перенося на И правило дизъюнкции. Но конъюнкция требует выполнения обоих условий одновременно. Для проверки возьмите A = 1, B = 0: результат И равен 0, а не 1.
Значения 0 и 1 иногда принимают за отсутствие значения и обычное число. В логическом выражении это коды ложного и истинного, поэтому 0 — полноценное логическое значение, а не пустая ячейка. Ошибка возникает, если переменную с 0 пропускают при вычислении. Проверьте, что для каждого набора всем переменным присвоены значения и каждая операция выполнена.
Сложное выражение легко вычислить неверно, если не учитывать скобки и порядок действий. Например, поспешное выполнение ИЛИ до НЕ может изменить промежуточный результат. Чтобы проверить себя, подпишите порядок вычислений и заведите отдельные столбцы для частей выражения. Итог должен получаться из этих промежуточных значений, а не из догадки.
Для работы с логическими операциями нужно понимать, что такое высказывание и как отличить истинное утверждение от ложного. В программировании логические выражения задают условия ветвления и циклов: по их результату программа выбирает дальнейшее действие или решает, продолжать ли повторение. Таблицы истинности применяют при анализе логических схем и проверке равносильности выражений. Это связывает рассуждения о высказываниях с устройством программ и цифровых систем.
Чем логическая величина отличается от обычного числа?
Обычное число обозначает количество или величину, а логическая величина отвечает на вопрос, истинно утверждение или ложно. Записи 0 и 1 в логическом выражении обозначают именно ложь и истину, а не числа для арифметических вычислений.
Почему ложь в информатике обозначают нулём?
Это удобное соглашение: логическим значениям сопоставили два числовых кода — 0 и 1. Ноль обычно используют для ложного условия, а единицу — для истинного; это не значит, что ложь является обычным числом.
Когда выражение A И B будет истинным?
Только когда и A, и B истинны, то есть оба имеют значение 1. Если хотя бы одно из условий ложно, всё выражение A И B будет ложным.
Чем операция ИЛИ отличается от бытового «или»?
В логике ИЛИ обычно означает «одно условие или другое, или оба сразу». Поэтому выражение истинно, если истинен хотя бы один операнд, в том числе когда истинны оба.
Как правильно вычислять сложное логическое выражение?
Сначала учитывают скобки, затем выполняют операции по принятому порядку: отрицание, конъюнкцию, дизъюнкцию. Удобно записывать промежуточные значения в таблице истинности и проверять каждый набор переменных отдельно.
§ 18. Логические величины, операции, выражения