Разбор задания №6 ОГЭ по информатике: Программы с ветвлением и логическими условиями
Разбор задания №6 ОГЭ по информатике: Программы с ветвлением и логическими условиями
Задание №6 в ОГЭ по информатике проверяет базовые навыки чтения и анализа программного кода. В нём моделируется работа условного оператора (if / else), логических связок (И, ИЛИ, НЕ) и подсчёт количества срабатываний программы при различных входных данных.
За правильное выполнение вы получаете 1 первичный балл. Задание решается за 2–3 минуты простым перебором пар чисел на черновике.
1. Теоретический фундамент: что нужно знать
В условии приводится один и тот же алгоритм на 5 языках программирования (Python, C++, Паскаль, Бейсик, Алгоритмический язык). Вы можете выбрать любой привычный для вас язык. Чаще всего школьники выбирают Python или Паскаль.
Как работают логические связки в условиях
| Связка в логике | В коде Python | В Паскале / C++ | Правило срабатывания |
| И (конъюнкция) | and | and / && | Условие истинно, только если оба условия выполняются одновременно. |
| ИЛИ (дизъюнкция) | or | or / || | Условие истинно, если выполняется хотя бы одно из условий. |
| НЕ (отрицание) | not | not / ! | Меняет знак или истинность условия на противоположное. |
Операции деления и сравнения:
s // 2(илиs div 2) — целочисленное деление (деление с отбрасыванием дробной части:7 // 2 = 3).s % 5(илиs mod 5) — остаток от деления (18 % 5 = 3).s >= 2 * k— нестрогое неравенство (больше либо равно).
2. Основные типы задания №6
- Классический подсчёт ответов «YES» (или «ДА») — даны 9 пар чисел
(s, t), нужно сосчитать количество пар, при которых выполнилось условиеif. - Ловушка с вопросом «NO» (или «НЕТ») — программа проверяет условие, но в вопросе просят посчитать, сколько раз условие не выполнилось.
- Задачи с параметром А (повышенная сложность) — в коде появляется неизвестное число
А, и требуется найти наименьшее, наибольшее значениеАили количество подходящих целых значенийА.
3. Универсальный пошаговый алгоритм решения
- Определите переменные: в скобках всегда даётся пара
(первое число, второе число). Первое число идёт вs, второе — вt(илиk). - Упростите условие (если есть
not):not (s > -4)⇔s ≤ -4not (t > 3)⇔t ≤ 3
- Выпишите 9 пар чисел в столбик на черновике.
- Проверьте каждую пару:
- Для связки И (
and): если первое условие ложно, второе можно даже не проверять (сразу «NO»). - Для связки ИЛИ (
or): если первое условие истинно, второе можно не проверять (сразу «YES»).
- Для связки И (
- Перечитайте вопрос задания: убедитесь, что вы считаете именно YES (ДА) или NO (НЕТ).
4. Разбор типовых примеров из банка ФИПИ
Пример 1. Базовый подсчёт с логическим «ИЛИ» (or)
Условие (№ 10458):Ниже приведена программа на языке Python:
PythonБыло проведено 9 запусков программы с парами чисел(s, t):(1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (-12, 11); (10, 10); (10, 5).
Сколько было запусков, при которых программа напечатала «YES»?
Пошаговое решение:
Условие для вывода «YES»: s > 10 ИЛИ t > 10 (достаточно, чтобы хотя бы одно число было строго больше 10).
(1, 2): 1 > 10 (нет), 2 > 10 (нет) → NO(11, 2): 11 > 10 (да) → YES (1)(1, 12): 12 > 10 (да) → YES (2)(11, 12): 11 > 10 (да) → YES (3)(-11, -12): оба меньше 10 → NO(-11, 12): 12 > 10 (да) → YES (4)(-12, 11): 11 > 10 (да) → YES (5)(10, 10): 10 > 10 (нет, неравенство строгое!) → NO(10, 5): 10 > 10 (нет), 5 > 10 (нет) → NO
Программа напечатала «YES» ровно 5 раз.
Ответ: 5
Пример 2. Ловушка с вопросом «NO» и отрицанием not
Условие (№ 37236):Фрагмент программы на Python:
PythonБыло проведено 9 запусков:(9, 9); (9, 10); (8, 5); (11, 6); (-11, 10); (-5, 9); (-10, 10); (4, 5); (8, 6).
Сколько было запусков, при которых программа напечатала «NO»?
Пошаговое решение:
- Раскроем условие
if:not (t > 3)означаетt ≤ 3.- Значит, «YES» выводится, когда одновременно: s < 5 И t ≤ 3.
- Проверяем пары на условие «YES»:
(9, 9): s = 9 (не меньше 5) → NO(9, 10): s = 9 → NO(8, 5): s = 8 → NO(11, 6): s = 11 → NO(-11, 10): s = -11 < 5 (да), но t = 10 (не ≤ 3) → NO(-5, 9): s = -5 < 5 (да), но t = 9 (не ≤ 3) → NO(-10, 10): s = -10 < 5 (да), но t = 10 (не ≤ 3) → NO(4, 5): s = 4 < 5 (да), но t = 5 (не ≤ 3) → NO(8, 6): s = 8 → NO
- Ни одна пара не дала ответ «YES». Все 9 запусков вывели ответ «NO».
- В вопросе просили указать количество выводов «NO» — это 9.
Ответ: 9
Пример 3. Задача с целочисленным делением
Условие (№ 18215):Фрагмент программы на Python:
PythonВходные пары(s, k):(1, 1); (8, 4); (14, 10); (20, 1); (7, 3); (10, 5); (10, 2); (4, 1); (1, 0).
Сколько было запусков, при которых программа напечатала «ДА»?
Пошаговое решение:
Проверяем равенство s // 2 == k:
(1, 1): 1 // 2 = 0 ≠ 1 → НЕТ(8, 4): 8 // 2 = 4 == 4 → ДА (1)(14, 10): 14 // 2 = 7 ≠ 10 → НЕТ(20, 1): 20 // 2 = 10 ≠ 1 → НЕТ(7, 3): 7 // 2 = 3 == 3 → ДА (2)(10, 5): 10 // 2 = 5 == 5 → ДА (3)(10, 2): 10 // 2 = 5 ≠ 2 → НЕТ(4, 1): 4 // 2 = 2 ≠ 1 → НЕТ(1, 0): 1 // 2 = 0 == 0 → ДА (4)
Всего программа напечатала «ДА» 4 раза.
Ответ: 4
Пример 4. Задание с параметром А (Повышенный уровень)
Условие (№ 16014):Фрагмент программы на Python:
PythonВходные пары(s, t):(1, 2); (11, 2); (1, 12); (11, 12); (-11, -12); (-11, 12); (-12, 11); (10, 10); (10, 5).
Укажите количество целых значений параметра А, при которых программа напечатает «NO» ровно три раза.
Пошаговое решение:
- Программа печатает «YES», если
s > 10илиt > A. - Соответственно, программа напечатает «NO», когда оба условия ложны: s ≤ 10 И t ≤ A.
- Найдём пары, где
s > 10(они всегда дадут «YES» независимо отА):(11, 2)— s = 11 > 10 (всегда YES)(11, 12)— s = 11 > 10 (всегда YES)- Эти 2 пары никогда не дадут «NO».
- Осталось 7 пар с
s ≤ 10, для которых вывод «NO» зависит только от условияt ≤ A:(1, 2)→ t = 2(1, 12)→ t = 12(-11, -12)→ t = -12(-11, 12)→ t = 12(-12, 11)→ t = 11(10, 10)→ t = 10(10, 5)→ t = 5
- Выпишем значения
tдля этих 7 пар в порядке возрастания:-12, 2, 5, 10, 11, 12, 12 - Нам нужно получить ровно 3 ответа «NO». Это значит, что условие
t ≤ Aдолжно выполниться ровно для 3 наименьших значенийt:- Должны подойти: -12, 2, 5 (значит,
A ≥ 5) - Не должно подойти следующее число 10 (значит,
A < 10)
- Должны подойти: -12, 2, 5 (значит,
- Получаем двойное неравенство для целого числа A:5 ≤ A < 10 (или
5 ≤ A ≤ 9) - Подходящие целые значения А:
{5, 6, 7, 8, 9}— всего 5 значений.
Ответ: 5
5. Типичные ловушки и частые ошибки
- Строгие знаки неравенства:
- Если условие
s > 10, а на вход подаётся число10, то условие не выполняется (10 не больше 10).
- Если условие
- Вопрос задачи:
- Всегда внимательно проверяйте, что именно спрашивается в конце: сколько раз программа напечатала YES или сколько раз NO.
- Всегда внимательно проверяйте, что именно спрашивается в конце: сколько раз программа напечатала YES или сколько раз NO.
- Путаница переменных
sиt:- Первое число в скобках
(s, t)подставляется вместо переменнойs, а второе — вместоt. Не меняйте их местами при проверке.
- Первое число в скобках
- Работа с отрицательными числами:
- Помните, что
-5 > -10(число -5 больше, чем -10).
- Помните, что
Памятка для ученика
┌─────────────────────────────────────────────────────────────┐
│ ЧЕК-ЛИСТ ДЛЯ ЗАДАНИЯ №6 ОГЭ │
├─────────────────────────────────────────────────────────────┤
│ 1. Выбрать понятный язык (Python / Pascal). │
│ 2. Проверить связку: │
│ • OR (ИЛИ) → достаточно выполнения ХОТЯ БЫ ОДНОГО. │
│ • AND (И) → обязательно выполнение ОБОИХ условий. │
│ 3. Раскрыть NOT, если он есть. │
│ 4. Проверить 9 пар по очереди, помечая ответ (+ / -). │
│ 5. Внимательно перечитать вопрос: считаем «YES» или «NO»? │
│ 6. Для задач с параметром А: упорядочить значения t. │
└─────────────────────────────────────────────────────────────┘