P
pro·school.ru
Каталог школ

Сложные логические выражения в условиях

💻 Информатика · 9 класс

Сложные логические выражения

Логическое выражение — это условие, которое может быть истинным или ложным. В программах такие выражения управляют ветвлениями (командой «если») и циклами (командой «пока»). Когда одного простого условия мало, его собирают из нескольких частей с помощью логических операций «и», «или», «не». Эта тема связывает логику и программирование в курсе 9 класса.

Операции сравнения

Простые условия строят из операций сравнения: больше, меньше, равно, не равно, больше или равно, меньше или равно. Например, условие x > 0 истинно для положительных чисел и ложно для остальных. Результатом сравнения всегда бывает одно из двух значений: истина или ложь.

Логические связки

Чтобы объединить несколько условий в одно, используют связки:

  • «и» (конъюнкция) — истинно, только когда истинны оба условия сразу;
  • «или» (дизъюнкция) — истинно, когда истинно хотя бы одно из условий;
  • «не» (отрицание) — меняет истину на ложь и наоборот.

Например, чтобы проверить, что число x попадает в отрезок от 1 до 10 включительно, пишут составное условие из двух частей, соединённых связкой «и»:

(x >= 1) и (x <= 10)

Это условие истинно, только если выполнены обе части одновременно. Поведение связок удобно описывать таблицей истинности.

ABA и BA или B
истинаистинаистинаистина
истиналожьложьистина
ложьистиналожьистина
ложьложьложьложь

Упрощение и законы

Сложные условия можно упрощать, что делает программу яснее. Полезен закон де Моргана: отрицание выражения A и B равно не A или не B, а отрицание A или B равно не A и не B. Например, не (x > 0 и y > 0) равносильно x <= 0 или y <= 0. Это помогает переписывать условия удобнее и избегать лишних отрицаний.

Порядок выполнения операций

В составном выражении операции выполняются в определённом порядке: сначала сравнения, затем «не», затем «и», и в последнюю очередь «или». Чтобы не запутаться и явно задать порядок, части условия берут в круглые скобки. Например, выражение a или b и c понимается как a или (b и c), а если нужен другой порядок, скобки ставят сами: (a или b) и c. Скобки делают условие читаемым и защищают от ошибок.

Частые ошибки. Нельзя записывать двойное неравенство как 1 < x < 10 в виде одной операции — в большинстве языков программирования это работает неправильно. Нужно явно соединять две части связкой «и». Также не путайте «и» с «или»: для попадания в отрезок нужны оба условия сразу, а для попадания хотя бы в одну из двух областей достаточно одного.

Кратко о главном

  • Логическое выражение принимает значение истина или ложь.
  • «И» требует выполнения обоих условий, «или» — хотя бы одного.
  • «Не» меняет значение условия на противоположное.
  • Поведение связок наглядно описывает таблица истинности.
  • Закон де Моргана помогает переписывать отрицания составных условий.