Задание 3 ОГЭ по информатике: решайте с автопроверкой

В задании 3 дано высказывание о числе x с операциями НЕ, И, ИЛИ. Нужно найти наименьшее или наибольшее x, при котором оно истинно или ложно, или посчитать подходящие x.

Решать задачи номера

Как решать программой

Руками задачу решают, упрощая высказывание: НЕ (x < a) — это x ≥ a. Программа решает её перебором x по возрастанию с проверкой высказывания, записанного почти дословно.

В Python «НЕ» — это not, «И» — это and, «ИЛИ» — это or. Скобки ставьте так же, как в условии: not слабее сравнений, но сильнее and и or, поэтому not x < a означает not (x < a).

Для наименьшего x берите первый подходящий в цикле по возрастанию, для наибольшего перебирайте по убыванию или запоминайте последний подходящий.

Если нужно посчитать подходящие x, замените min на sum(1 for x in ...). Если спрашивают о наибольшем x, при котором высказывание ложно, используйте max и поставьте not перед всем высказыванием.

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

Высказывание НЕ (x < 12) И НЕ (x делится на 4). Найдём наименьшее x от 1 до 50, при котором оно истинно.

a = 12
print(min(x for x in range(1, 51) if not (x < a) and not (x % 4 == 0)))

Программа печатает

13

Числа от 1 до 11 не подходят: для них x < 12. Число 12 делится на 4 и тоже не подходит. Первое подходящее 13.

Решить эту задачу

Задачи к заданию 3

  • Наименьшее x для высказыванияЛёгкаяРешать
  • Наибольшее x, где высказывание ложноЛёгкаяРешать
  • Сколько x делают высказывание истиннымЛёгкаяРешать
  • Высказывание о цифрах числаЛёгкаяРешать
  • Первое подходящее названиеЛёгкаяРешать
  • Квадрат числа в высказыванииЛёгкаяРешать

Бесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Вопросы и ответы

Как упростить НЕ (x < a)?
Это то же, что x ≥ a. Отрицание меняет знак сравнения на противоположный.
Что значит «x делится на 4» в программе?
x % 4 == 0: остаток от деления равен нулю.
Как проверить высказывание о цифрах числа?
Возьмите последнюю цифру как x % 10, первую цифру двузначного числа как x // 10.
Почему программа даёт другой ответ, чем я руками?
Проверьте отрицания и скобки. Чаще всего ошибка в том, что not стоит не перед тем выражением или перепутаны строгое и нестрогое сравнение.