Задачи ОГЭ с блок-схемами
Шесть типовых задач ОГЭ на алгоритмы и блок-схемы: цикл со счётчиком, ветвление, фильтрация в цикле, обработка цифр числа, накопление произведения и поиск максимума. С разбором и живыми схемами.
Пора применить всё, что мы изучили, к настоящим экзаменационным задачам. В ОГЭ по информатике алгоритмы встречаются в заданиях на определение результата программы и анализ блок-схем. Разберём шесть типовых задач: к каждой дана живая схема, но сначала попробуй решить на бумаге — на экзамене кнопки «выполнить» не будет.
Задача 1. Сколько витков сделает цикл
Дан алгоритм. Какое значение переменной n будет выведено?
s = 0
n = 0
while s < 15:
s = s + 3
n = n + 1
print(n)
Решение. Трассируем по виткам: после первого витка s = 3, после второго — 6, потом 9, 12, 15. Проверка 15 < 15 даёт «нет» — цикл останавливается. Витков было пять, значит n = 5.
| Виток | s | n | s < 15? |
|---|---|---|---|
| — | 0 | 0 | да |
| 1 | 3 | 1 | да |
| 2 | 6 | 2 | да |
| 3 | 9 | 3 | да |
| 4 | 12 | 4 | да |
| 5 | 15 | 5 | нет — выход |
Ответ: 5. Проверь по живой схеме:
s = 0
n = 0
while s < 15:
s = s + 3
n = n + 1
print(n)
Задача 2. Ветвление с вводом
Пользователь ввёл a = 4 и b = 9. Что выведет алгоритм?
a = int(input())
b = int(input())
if a > b:
c = a - b
else:
c = b - a
print(c)
Решение. Условие 4 > 9 ложно, исполнитель уходит по ветке «нет»: c = 9 − 4 = 5. Ответ: 5.
Заметь: алгоритм вычисляет |a − b| — модуль разности — для любых входных чисел. На экзамене иногда спрашивают наоборот: «при каких входных данных будет выведено 5?» Таких пар бесконечно много: годится любая пара чисел, отличающихся на 5.
Задача 3. Цикл с условием внутри
Что выведет алгоритм?
s = 0
for i in range(1, 11):
if i % 3 == 0:
s = s + i
print(s)
Решение. Счётчик i пробегает числа от 1 до 10. Внутри витка ромб пропускает к накопителю только числа, делящиеся на 3 нацело: это 3, 6 и 9. Сумма: 3 + 6 + 9 = 18. Ответ: 18.
Здесь главная ловушка — границы: range(1, 11) заканчивается на 10, поэтому 12 в сумму не попадёт, как бы ни хотелось. Пройди схему и посмотри, как ромб «фильтрует» значения счётчика:
s = 0
for i in range(1, 11):
if i % 3 == 0:
s = s + i
print(s)
Задача 4. Найди смысл алгоритма
Пользователь ввёл число 2026. Что будет выведено?
x = int(input())
while x > 9:
x = x // 10
print(x)
Решение. Цикл отбрасывает последнюю цифру (x // 10), пока число больше 9: 2026 → 202 → 20 → 2. На двойке условие 2 > 9 ложно, цикл выходит. Ответ: 2. По сути алгоритм выводит первую (старшую) цифру числа.
Задача 5. Сумма цифр числа
Пользователь ввёл число 348. Что будет выведено?
n = int(input())
s = 0
while n > 0:
s = s + n % 10
n = n // 10
print(s)
Решение. Здесь два знакомых оператора работают в паре: n % 10 отрывает последнюю цифру и добавляет её к сумме, n // 10 укорачивает число. Трассируем: 348 → s=8, n=34 → s=15, n=3 → s=18, n=0 — выход. Ответ: 18. Это шаблон «сумма цифр», который надо знать наизусть.
Задача 6. Накопление и максимум
Что выведет алгоритм?
p = 1
for i in range(1, 5):
p = p * i
print(p)
Решение. Накопитель произведения начинается с 1. По виткам: 1 → 1·1=1 → 1·2=2 → 2·3=6 → 6·4=24. Ответ: 24. Это 4! (факториал четырёх). Узнаёшь паттерн «произведение» из урока про циклы — начальное значение 1, а не 0.
Что мы узнали
- Задачи ОГЭ на алгоритмы решаются трассировкой — таблицей по шагам и виткам.
- Цикл
while s < 15делает ровно столько витков, сколько нужно, чтобы условие стало ложным. - Ветвление выбирает одну ветку; алгоритм с разностью часто вычисляет модуль |a − b|.
- Связка
n % 10иn // 10— универсальный приём для работы с цифрами числа. - Накопитель суммы стартует с 0, накопитель произведения — с 1.
- Главная ловушка экзамена — границы
rangeи последний виток цикла.