Задание 15 ОГЭ: как написать программу на Python для последней задачи?
Пятнадцатое задание ОГЭ — программирование, можно писать на Python или в КуМире. Обычно просят обработать последовательность чисел: найти минимум, сумму, количество подходящих. Как написать программу для задания 15 на Python, чтобы получить максимум баллов?
2 ответа
Задание 15 — финальное, на программирование, даёт до 2 баллов. Есть два варианта: 15.1 (на любом языке, обычно Python) и 15.2 (для исполнителя Робот в КуМире). Разберём Python.
Типичная задача 15.1: вводят последовательность чисел (до нуля или фиксированной длины), нужно найти сумму/минимум/максимум/количество по условию.
Шаблон «ввод до нуля»:
x = int(input())
s = 0 # сумма
count = 0 # счётчик подходящих
while x != 0:
s = s + x
if x % 3 == 0: # пример условия: кратно 3
count = count + 1
x = int(input())
print(s)
print(count)
Шаблон «N чисел»:
n = int(input())
maxv = -1000000 # заведомо маленькое
for i in range(n):
x = int(input())
if x > maxv:
maxv = x
print(maxv)
Чтобы получить полный балл:
- Программа должна работать на всех тестах, включая крайние (например, когда подходящих чисел нет).
- Минимум/максимум инициализируйте первым числом или заведомо большим/маленьким значением.
- Выводите ровно то, что просят, в нужном порядке.
Частая ошибка: инициализируют максимум нулём — и если все числа отрицательные, ответ неверный. Лучше брать первое число последовательности за начальное значение.
Если ищете и минимум, и максимум одновременно — корректнее инициализировать их первым введённым числом, а потом сравнивать остальные:
n = int(input())
a = int(input())
mn = mx = a
for i in range(n - 1):
x = int(input())
if x < mn: mn = x
if x > mx: mx = x
print(mn, mx)
Это избавляет от «магических» больших чисел и работает при любых значениях. Для 15.2 (КуМир, Робот) подход совсем другой — там команды движения и закрашивания, циклы «пока справа свободно» и т.п.