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

Сложные условия отбора данных

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

Сложные условия отбора данных

Сложное условие — это логическое выражение, составленное из нескольких простых сравнений, соединённых связками И, ИЛИ, НЕ. Такие условия позволяют отбирать данные, удовлетворяющие сразу нескольким требованиям.

Простые сравнения

Основа любого условия — сравнение двух величин. Результат сравнения всегда логический: истина или ложь. Например, проверка «оценка больше трёх» истинна для четвёрок и пятёрок.

ЗаписьСмысл
x > 0больше нуля
x >= 10не меньше десяти
x = 5равно пяти
x <> 0не равно нулю

Соединение через связки

Связка И требует выполнения обоих сравнений, связка ИЛИ — хотя бы одного, связка НЕ меняет результат на противоположный. С их помощью описывают диапазоны и исключения.

Отбор чисел от 10 до 20 включительно:
(x >= 10) И (x <= 20)

Отбор оценок «двойка или пятёрка»:
(x = 2) ИЛИ (x = 5)

Все значения, кроме нуля:
НЕ (x = 0)

Разбор примера

Пусть нужно отобрать числа, которые лежат в промежутке от 10 до 20, но не равны 15. Объединяем три сравнения:

(x >= 10) И (x <= 20) И (x <> 15)

Для числа 12 все три части истинны — оно подходит. Для 15 третья часть ложна, и всё условие даёт ложь.

Таблица проверки условия

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

xx >= 10x <= 20x <> 15Итог
9ложьистинаистиналожь
12истинаистинаистинаистина
15истинаистиналожьложь
25истиналожьистиналожь

Закон де Моргана при отрицании

Иногда условие удобнее записать через отрицание. Отрицание связки И превращается в ИЛИ отрицаний, и наоборот. Этим пользуются, чтобы упростить сложные проверки.

НЕ (A И B) равносильно (НЕ A) ИЛИ (НЕ B)
НЕ (A ИЛИ B) равносильно (НЕ A) И (НЕ B)

Например, «число НЕ лежит в диапазоне от 10 до 20» можно записать как (x < 10) ИЛИ (x > 20).

Отбор по двум признакам

Сложные условия особенно полезны, когда у объекта несколько свойств. Тогда каждую часть условия проверяют отдельно, а затем соединяют связкой по смыслу задачи.

Отобрать учеников, которые сдали оба зачёта:
(зачёт1 = "сдан") И (зачёт2 = "сдан")

Отобрать тех, кто не сдал хотя бы один:
(зачёт1 <> "сдан") ИЛИ (зачёт2 <> "сдан")

Заметьте: «сдали оба» и «не сдал хотя бы один» — противоположные условия. Это ещё один пример закона де Моргана на практике.

Частая ошибка: описывать диапазон записью вроде 10 < x < 20 без связки И. Каждое сравнение нужно записывать отдельно и соединять связкой, иначе условие будет понято неверно.

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

  • Сложное условие строят из простых сравнений и связок И, ИЛИ, НЕ.
  • Связка И требует обоих условий, ИЛИ — хотя бы одного.
  • Диапазон задают двумя сравнениями, соединёнными И.
  • Исключение значения описывают через НЕ или «не равно».