"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Логическая формула переводит условие задачи на точный язык переменных и операций. Сначала из текста выделяют простые высказывания, затем обозначают их буквами, находят связки «не», «и», «или», «если… то» и расставляют скобки. Такой способ помогает записывать условия алгоритмов, строить таблицы истинности и проверять, при каких значениях условие будет истинным. Главное — сохранить смысл исходного предложения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическая переменная — величина, принимающая одно из двух значений: истина или ложь. Её обозначают буквой, например A или B, поэтому вместо длинного условия можно работать с короткой записью. Переменная не является числом: она показывает только истинность конкретного высказывания.
Логическое высказывание — повествовательное предложение, о котором можно однозначно сказать, истинно оно или ложно. Например, предложение «7 больше 3» является высказыванием, а вопрос «Который час?» — нет. Выделение высказываний нужно, чтобы превратить обычный текст задачи в набор логических переменных.
Логическая операция — способ соединения или изменения высказываний с помощью связок НЕ, И, ИЛИ, ЕСЛИ…ТО. Операции записывают специальными знаками: ¬A, A ∧ B, A ∨ B и A → B. Благодаря им можно точно передать, какие условия должны выполняться вместе, какие допускают выбор, а какие зависят друг от друга.
Логическая формула — запись логического выражения с использованием переменных, операций и скобок. Например, A ∧ ¬B означает: A истинно, а B — ложно. Формула нужна для дальнейшей проверки условия, построения таблицы истинности или записи условия в программе.
Сначала из условия выделяют простые высказывания — части, которые можно проверить независимо. Это делают потому, что логические операции работают с отдельными значениями истины и лжи, а не с неразобранным предложением. Например, в условии «число положительное и чётное» получаются два высказывания: «число положительное» и «число чётное».
Каждое найденное высказывание обозначают своей буквой и сразу записывают расшифровку обозначений. Такая запись предотвращает путаницу: по одной букве без пояснения нельзя понять, какое именно условие имеется в виду. Если два разных высказывания обозначить одной переменной, формула потеряет часть исходного смысла.
Затем находят слова, задающие логические операции. «Не» означает отрицание, «и» — одновременное выполнение условий, «или» — выбор хотя бы одного варианта, а «если… то» — зависимость между условием и следствием. Перевод связок нужен для того, чтобы не угадывать смысл по внешнему виду формулы, а точно воспроизвести отношения между частями предложения.
Сложное условие строят по частям: сначала записывают простые высказывания, затем объединяют близкие по смыслу группы. Так легче увидеть, к какой части относится каждая связка и отрицание. Скобки явно показывают структуру: например, (A ∨ B) ∧ C отличается от A ∨ (B ∧ C), потому что в первом случае сначала выбирают один из двух вариантов, а затем требуют C.
После записи формулы расставляют скобки и проверяют порядок выполнения операций. Это особенно важно, если в одном предложении встречаются «и», «или» и «не»: без скобок отрицание или группа условий могут быть поняты неправильно. Проверка состоит в обратном чтении формулы и сравнении каждой её части с исходным условием.
| Этап | Что сделать | Результат |
|---|---|---|
| Выделить простые высказывания | Найти в условии части, имеющие самостоятельный смысл и истинностное значение | Получен набор высказываний для обозначения переменными |
| Обозначить высказывания | Присвоить простым высказываниям буквенные имена | Появились логические переменные |
| Определить логические связки | Установить, какие слова условия означают НЕ, И, ИЛИ, ЕСЛИ…ТО | Выбраны логические операции |
| Соединить части условия | Записать операции в том же смысловом порядке, что и в условии | Получена предварительная формула |
| Расставить скобки и проверить смысл | Уточнить порядок выполнения операций и сопоставить формулу с исходным предложением | Получена корректная логическая формула |
Таблицу удобно использовать как последовательный алгоритм, не пропуская ни одного шага. На первых этапах работают с текстом, а на последних проверяют уже полученную запись. Если на проверке смысл не совпал, нужно вернуться к обозначениям или скобкам.
Условие: «Число x делится на 3 и не делится на 5». Здесь есть два самостоятельных высказывания и одно отрицание.
Ответ: A ∧ ¬B. Формула истинна только тогда, когда число делится на 3 и одновременно не делится на 5.
Условие: «Ученик получит допуск, если выполнит лабораторную работу или сдаст зачёт и не имеет пропусков». Сначала нужно понять границы групп: выбор между лабораторной работой и зачётом относится к одному блоку, а отсутствие пропусков требуется дополнительно.
Ответ: (A ∨ B) ∧ ¬C. Одного из первых двух достижений достаточно, но пропусков быть не должно.
Условие: «Система сработает тогда и только тогда, когда датчик A включён, а датчик B или датчик C неисправен». Слово «а» здесь соединяет обязательные части, а «или» объединяет два возможных неисправных датчика.
Ответ: P ↔ (A ∧ (B ∨ C)). Вложенные скобки показывают, что сначала рассматривается выбор между неисправностью B и C, а затем этот результат соединяется с включённым датчиком A.
Ошибка: считать высказыванием любое предложение. Вопрос, просьба или фраза с неопределённым смыслом не имеют однозначного значения истины, поэтому их нельзя напрямую обозначить переменной. Проверьте предложение вопросом: можно ли для него уверенно ответить «истина» или «ложь»?
Ошибка: путать «и» с «или». Такое происходит, когда в обычной речи «или» иногда используют неточно, но в формуле оно означает возможность выполнить хотя бы одно условие. Для проверки спросите себя, обязательны ли обе части или достаточно одной.
Ошибка: отбросить отрицание или отнести его не к той части. Причина обычно в длинном предложении без скобок: ¬(A ∨ B) и ¬A ∨ B имеют разный смысл. Прочитайте формулу словами и убедитесь, что «не» относится именно к нужной группе.
Ошибка: записать переменные без определения. Тогда буква A может обозначать что угодно, а проверить формулу по условию невозможно. Перед формулой составьте короткий список: A — первое высказывание, B — второе, C — третье.
Для построения формул нужно знать значения операций НЕ, И, ИЛИ и правила записи логических выражений. Эти навыки применяются при составлении условий в алгоритмах и программах, где логические выражения управляют выбором действий. Построенные формулы также используют в таблицах истинности, при упрощении выражений и проектировании логических схем.
Как понять, является ли предложение логическим высказыванием?
Логическое высказывание — повествовательное предложение, для которого можно однозначно установить истину или ложь. Вопросы, просьбы и неопределённые фразы высказываниями не являются.
Как обозначить части сложного условия буквами?
Разделите условие на простые высказывания, каждое из которых имеет самостоятельный смысл. Затем присвойте им разные буквы, например A, B и C, и запишите расшифровку обозначений.
В чём разница между логическими связками «и» и «или»?
Связка «и» требует истинности всех соединённых условий. При «или» достаточно истинности хотя бы одного условия, если из текста не следует другое ограничение.
Когда в логической формуле нужны скобки?
Скобки нужны, когда надо показать, какие части объединяются в группу и в каком порядке выполняются операции. Особенно они важны при нескольких связках или при отрицании сложного высказывания.
Как проверить, что построенная формула соответствует условию задачи?
Прочитайте формулу обратно словами и сопоставьте каждую переменную с исходным высказыванием. Отдельно проверьте отрицания, связки и границы скобок, подставив несколько возможных значений.
§ 32. Как построить логическую формулу