"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович
Логический тип данных хранит только два значения: истина и ложь. Он нужен, чтобы описывать ответы «да» и «нет», проверять условия и управлять ходом программы. Сравнение чисел или других значений создаёт логическое выражение, а операции НЕ, И и ИЛИ позволяют соединять и изменять условия. Чтобы получить правильный результат составного выражения, нужно учитывать скобки и порядок действий.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логический тип данных — тип данных, принимающий только два значения: истина или ложь. Это удобно, когда программе нужно хранить ответ на вопрос, у которого есть два варианта: например, открыт ли файл или введено ли верное число. Значения обозначают смысл ответа, а не величину, которую можно складывать или умножать.
Логическое значение — результат, равный «истина» или «ложь». Оно показывает, верно ли некоторое утверждение в данный момент. Например, если x = 6, то утверждение x > 3 истинно, а x < 3 ложно; по такому результату программа может решить, что делать дальше.
Логическое выражение — выражение, результатом вычисления которого является логическое значение. Оно может быть простым сравнением, например 7 > 3, или состоять из нескольких условий. Такие выражения нужны, чтобы записывать проверки в понятной и точной форме, а не описывать их словами каждый раз.
Логическая операция — действие над логическими значениями, преобразующее их в новое логическое значение. Например, НЕ меняет истину на ложь, а И объединяет два условия. Операции позволяют строить более сложные проверки из простых и получать один итоговый ответ.
Логических значений всего два, потому что они описывают ответ на вопрос с двумя возможными исходами: «да» или «нет». Например, условие «число положительное?» либо выполняется, либо нет. В программе эти варианты записываются как истина и ложь, поэтому их можно проверять и использовать для выбора действий.
Сравнение чисел образует логическое выражение, потому что его результатом становится ответ о соотношении значений. Знаки > и < проверяют, больше или меньше одно число другого, = проверяет равенство, а ≠ — неравенство; знаки ≥ и ≤ включают также равенство. Например, при x = 4 выражение x ≥ 4 истинно, а x < 4 ложно. В конкретном языке программирования обозначения могут выглядеть иначе, поэтому при записи кода используют его правила.
Операция НЕ применяется к одному логическому значению и переворачивает его: НЕ истина — ложь, а НЕ ложь — истина. И и ИЛИ действуют на два значения. Если нужно проверить сразу несколько обстоятельств, эти операции объединяют результаты отдельных сравнений и дают общий логический ответ.
Результат И истинен только при истинности обоих условий, потому что смысл этой операции — «и первое, и второе». Например, требование «число больше 0 И меньше 10» выполняется лишь для числа внутри указанного промежутка. Результат ИЛИ истинен, если истинно хотя бы одно условие: достаточно первого, второго или сразу обоих. Поэтому И выбирают для одновременных требований, а ИЛИ — для альтернатив.
Составное выражение нужно вычислять по правилам порядка действий, иначе можно неверно объединить условия. Сначала выполняют действия в скобках, затем обычно НЕ, И и ИЛИ; если правила конкретного языка отличаются, следуют им. Скобки особенно полезны, когда нужно явно показать, к какой части относится отрицание или какие условия объединяются вместе. Например, (A И B) ИЛИ C сначала проверяет оба условия A и B, а затем учитывает C.
| A | B | НЕ A | A И B | A ИЛИ B |
|---|---|---|---|---|
| ложь | ложь | истина | ложь | ложь |
| ложь | истина | истина | ложь | истина |
| истина | ложь | ложь | ложь | истина |
| истина | истина | ложь | истина | истина |
Каждая строка показывает результат операций для заданных значений A и B. Найдите строку с нужной парой значений, чтобы узнать результат НЕ A, A И B или A ИЛИ B. Таблица помогает проверить вычисления и увидеть, чем отличаются И и ИЛИ.
Сначала проверим сравнения: каждое из них отвечает на вопрос, верно ли утверждение. Последнее выражение содержит НЕ, поэтому сперва нужно вычислить сравнение в скобках. Затем отрицание меняет полученный ответ на противоположный.
Ответ: 7 > 3 — истина; 5 = 8 — ложь; НЕ(4 < 9) — ложь. Порядок действий в третьем выражении важен: отрицание применяется к результату сравнения. Если изменить скобки, может измениться смысл проверки.
Выражение истинно, когда одновременно выполняются оба условия: x больше нуля и x меньше десяти. Поэтому для каждого значения x проверим обе части отдельно. Только после этого объединим ответы операцией И.
Ответ: при x = 7 выражение истинно, при x = 12 — ложно. Число 7 удовлетворяет обоим условиям, а 12 не проходит проверку верхней границы. При И достаточно одного ложного условия, чтобы весь результат оказался ложным.
Фраза содержит два возможных требования: число находится в указанном отрезке либо равно 10. Чтобы принадлежать отрезку [−3; 5], число должно быть не меньше −3 и не больше 5. Эти две проверки соединяются И, а условие «равно 10» объединяется с ними через ИЛИ.
Ответ: (x ≥ −3) И (x ≤ 5) ИЛИ (x = 10). Скобки показывают, что число должно одновременно пройти обе проверки границ или, как другой вариант, быть равным 10. Например, −3 и 5 подходят, 7 не подходит, а 10 подходит.
Иногда считают, что истина всегда записывается как 1, а ложь — как 0. Так путают смысл логического значения с возможным способом его внутреннего хранения в отдельной программе. Сверьте обозначения с правилами используемого языка и не подменяйте ими слова истина и ложь в рассуждении.
И и ИЛИ могут перепутать, потому что обе операции соединяют условия. Но при И должны быть истинны все части, а при ИЛИ достаточно хотя бы одной. Проверьте себя на случае, когда одно условие истинно, а другое ложно: И даст ложь, ИЛИ — истину.
При отрицании составного условия иногда забывают скобки или отрицают только одну часть вместо всего выражения. Тогда результат может оказаться противоположным ожидаемому, поскольку НЕ действует не на ту часть. Перед вычислением поставьте скобки вокруг выражения, которое нужно изменить на противоположное, и только потом выполните остальные операции.
Сравнение и присваивание — разные действия: сравнение проверяет равенство и даёт логический результат, а присваивание записывает значение в переменную. Их путают из-за похожих знаков, которые в языках программирования часто различаются. Проверьте, нужно ли узнать, равны ли значения, или изменить переменную; затем используйте соответствующую запись языка.
Для работы с логическими выражениями нужны знания о переменных, константах и арифметических выражениях: сначала получают или задают значения, затем сравнивают их. Умение сравнивать числа помогает понять, откуда берутся истинность и ложность условий. Эти навыки соединяют вычисления с проверкой требований.
Логические выражения используются в условных операторах: по их результату программа выбирает, какое действие выполнить. Если условие истинно, может выполняться одна команда, а если ложно — другая. Так программа реагирует на значения данных.
Логические условия также применяются в циклах, при проверке правильности ввода и в алгоритмах. Например, цикл может продолжаться, пока условие истинно, а проверка ввода — не принимать неподходящее значение. Умение строить логические выражения помогает описывать эти правила точно.
Чем логический тип отличается от целого и вещественного?
Целый тип хранит целые числа, а вещественный — числа с дробной частью. Логический тип хранит только два значения: истина или ложь, поэтому им удобно обозначать результат проверки условия.
Почему выражение сравнения можно использовать как условие?
Сравнение всегда отвечает на вопрос, верно ли утверждение, например x > 0. Поэтому его результатом становится истина или ложь, которые программа может использовать для выбора действия.
В чём разница между операциями И и ИЛИ?
Операция И даёт истину, только если истинны оба условия. Операция ИЛИ даёт истину, если истинно хотя бы одно из условий.
Как правильно применить НЕ к составному условию?
Скобками укажите, какую часть выражения нужно отрицать: например, НЕ((x > 0) И (x < 10)). Тогда НЕ меняет результат всей составной проверки на противоположный. Без скобок область действия отрицания может быть понята не так, как задумано.
Зачем нужны логические выражения в программе?
Они помогают программе проверять данные и выбирать дальнейшие действия. Также логические условия задают, когда продолжать цикл, принимать ввод или сообщать об ошибке.
15.1. Логический тип данных