решай.ai · шпаргалка

Задание 16: Программирование

ОГЭ Информатика

Как выглядит

Типичная формулировка звучит так: «В файле находится последовательность из не более чем 10610^6 целых чисел, значения которых не превышают по модулю 10910^9. Определить количество чисел, кратных 7, и вывести их сумму» — или похожий вариант с другим условием отбора.

Особенности формата:

  • количество чисел в файле обычно не сообщается явно, программа должна читать данные до конца файла;
  • числа могут быть как положительными, так и отрицательными;
  • результат нужно вывести в строго заданном порядке и формате (например, «сначала количество, затем сумма через пробел»).

…

Что нужно знать

  • Переменная-накопитель (аккумулятор) — переменная, которая хранит промежуточный результат: сумму, количество, максимум.
  • Цикл for — используется, когда известно количество повторений или элементы читаются по одному до конца файла.
  • Цикл while — используется, когда условие продолжения цикла проверяется каждый раз (например, «пока не конец файла»).
  • Условный оператор if — проверка условия отбора элемента.
  • Остаток от деления: a mod ba \bmod b — используется для проверки кратности числа: число aa кратно bb, если a mod b=0a \bmod b = 0.
  • Целочисленное деление: a // ba \,//\, b — целая часть частного.
  • Среднее арифметическое: xˉ=Sn\bar{x} = \dfrac{S}{n}, где SS — сумма элементов, nn — их количество.
  • Проверка чётности: число nn чётное, если n mod 2=0n \bmod 2 = 0.
  • Функции для готовых операций: max(), min(), sum(), len() — облегчают код, но не всегда подходят при потоковом чтении файла.
  • Индексация элементов последовательности: первый элемент имеет номер 1 или 0 в зависимости от контекста задачи — это важно уточнять по условию.

Алгоритм

  1. Внимательно прочитать условие: что является входными данными (файл или ввод с клавиатуры), какое условие отбора элементов, что нужно вывести и в каком порядке.
  2. Определить формат чтения: числа записаны в одну строку через пробел или каждое число на отдельной строке.
  3. Завести все необходимые переменные-накопители и присвоить им начальные значения (0 для суммы и количества, экстремальное значение для максимума/минимума).
  4. Организовать цикл чтения: если размер последовательности неизвестен, читать до конца файла (for line in f или цикл while с проверкой конца потока).
  5. Внутри цикла преобразовать прочитанную строку в число (int()), проверить условие отбора и обновить накопители.
  6. После завершения цикла вывести результат в требуемом формате — важно соблюдать порядок значений и разделители (пробел, перевод строки). …

Ловушки

  • Неверная инициализация накопителей. Если забыть присвоить начальное значение переменной суммы или количества, программа выдаст ошибку или неверный результат.
  • Некорректная инициализация экстремума. Если для поиска максимума взять начальное значение 0, а все числа в последовательности отрицательные, результат окажется неправильным. Нужно использовать заведомо маленькое (или большое для минимума) число.
  • Ошибка в условии кратности. Часто путают a mod b=0a \bmod b = 0 с a // ba \,//\, b — проверка кратности всегда идёт через остаток, а не через целочисленное деление.
  • Игнорирование границы файла. Если не предусмотреть чтение до конца файла произвольной длины, программа может обрезать данные или зациклиться. …
reshay.ai/oge/informatika/zadanie-16 — задачи с разборами и тренажёр

Полный гайд и задачи задания 16 →