Теория для задания 16 ОГЭ по информатике 2025

Подробный разбор команд, теории и примеров заданий

1. Описание задания 16 ОГЭ по информатике

Задание 16 в ОГЭ по информатике проверяет умение учащихся создавать и выполнять программы для обработки числовой информации. В этом задании необходимо написать программу на одном из языков программирования (Python, Pascal, C++ и др.), которая решает поставленную задачу обработки последовательности чисел.

Структура задания: вам даётся текстовое описание задачи и требуется написать программу, которая считывает входные данные и выводит результат согласно условию задачи.

В задании 16 обычно требуется:

2. Основные типы задач в задании 16

2.1 По типу ввода данных

1. Последовательность с известной длиной

В начале указывается количество чисел (n), после чего вводятся n чисел.

n = int(input())  # Считываем количество чисел
for i in range(n):
    a = int(input())  # Считываем каждое число
    # Обрабатываем число a
            

2. Последовательность неизвестной длины (до нуля)

Числа вводятся до тех пор, пока не встретится число 0, которое является признаком окончания ввода.

a = int(input())  # Считываем первое число
while a != 0:
    # Обрабатываем число a
    a = int(input())  # Считываем следующее число
            

2.2 По типу обработки последовательности

3. Основные команды и конструкции Python для решения задания 16

3.1 Операции ввода и вывода

# Ввод данных
n = int(input())     # Ввод целого числа

# Вывод данных
print(результат)     # Обычный вывод
print(f'{число:.1f}')  # Вывод с форматированием (число с 1 знаком после запятой)
        

3.2 Условные операторы

# Простое условие
if условие:
    # код выполняется, если условие истинно

# Условие с веткой else
if условие:
    # код выполняется, если условие истинно
else:
    # код выполняется, если условие ложно

# Множественное условие
if условие_1:
    # код для условия 1
elif условие_2:
    # код для условия 2
else:
    # код, если ни одно условие не выполняется
        

3.3 Циклы

# Цикл for для перебора фиксированного количества элементов
for i in range(n):
    # код, повторяющийся n раз

# Цикл while для повторения, пока выполняется условие
while условие:
    # код, повторяющийся, пока условие истинно
    # не забудьте изменить условие внутри цикла, чтобы избежать бесконечного цикла
        

3.4 Основные операции сравнения и логические операторы

# Операции сравнения
==    # равно
!=    # не равно
>     # больше
<     # меньше
>=    # больше или равно
<=    # меньше или равно

# Логические операторы
and   # логическое И
or    # логическое ИЛИ
not   # логическое НЕ
        

3.5 Часто используемые математические операции

# Арифметические операции
+     # сложение
-     # вычитание
*     # умножение
/     # деление (результат - вещественное число)
//    # целочисленное деление
%     # остаток от деления
**    # возведение в степень

# Часто используемые встроенные функции
max(a, b)    # максимальное из двух чисел
min(a, b)    # минимальное из двух чисел
abs(x)       # модуль числа
        

3.6 Важные проверки с помощью остатка от деления (%)

4. Типовые задачи и их решения

Пример 1: Поиск количества чисел, удовлетворяющих условию

Задача: Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 3.

Пример ввода:

4
15
26
24
7

Пример вывода:

2

Решение:

n = int(input())  # Считываем количество чисел
k = 0  # Счетчик чисел, кратных 3
for i in range(n):
    a = int(input())  # Считываем очередное число
    if a % 3 == 0:  # Проверяем делимость на 3
        k = k + 1  # Увеличиваем счетчик

print(k)  # Выводим результат
            

Объяснение: Мы создаем счетчик k, начиная с нуля. Затем перебираем все n чисел последовательности. Для каждого числа a проверяем, делится ли оно на 3 без остатка (a % 3 == 0). Если да, увеличиваем счетчик. После перебора всех чисел выводим значение счетчика.

Пример 2: Проверка, на что оканчивается число

Задача: Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, оканчивающихся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа.

Пример ввода:

3
26
33
24

Пример вывода:

1

Решение:

n = int(input())  # Считываем количество чисел
k = 0  # Счетчик чисел, оканчивающихся на 4
for i in range(n):
    a = int(input())  # Считываем очередное число
    if a % 10 == 4:  # Проверяем, что число оканчивается на 4
        k = k + 1  # Увеличиваем счетчик

print(k)  # Выводим результат
            

Объяснение: Чтобы определить последнюю цифру числа, нужно найти остаток от деления этого числа на 10. Если остаток равен 4, то число оканчивается на 4.

Пример 3: Сумма чисел по сложному условию

Задача: Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 3 и оканчивающихся на 1. Программа получает на вход количество чисел в последовательности, а затем сами числа.

Пример ввода:

5
21
51
6531
121
22

Пример вывода:

6603

Решение:

n = int(input())  # Считываем количество чисел
sm = 0  # Переменная для суммы
for i in range(n):
    a = int(input())  # Считываем очередное число
    if a % 3 == 0 and a % 10 == 1:  # Проверяем оба условия
        sm = sm + a  # Добавляем число к сумме

print(sm)  # Выводим результат
            

Объяснение: Здесь мы используем логический оператор and для проверки двух условий одновременно: число должно делиться на 3 без остатка и оканчиваться на 1. Если оба условия выполняются, добавляем число к общей сумме.

Пример 4: Поиск максимального значения

Задача: Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5. Программа получает на вход количество чисел в последовательности, а затем сами числа.

Пример ввода:

3
10
25
12

Пример вывода:

25

Решение:

n = int(input())  # Считываем количество чисел
max_num = 0  # Начальное значение для максимума
for i in range(n):
    a = int(input())  # Считываем очередное число
    if a % 5 == 0:  # Проверяем делимость на 5
        max_num = max(max_num, a)  # Обновляем максимум

print(max_num)  # Выводим результат
            

Объяснение: Мы инициализируем переменную max_num значением 0. Затем для каждого числа проверяем, делится ли оно на 5. Если да, то сравниваем его с текущим максимальным значением и обновляем максимум, если текущее число больше. Функция max(a, b) возвращает большее из двух чисел.

Пример 5: Поиск минимального значения

Задача: Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа.

Пример ввода:

4
24
14
34
10

Пример вывода:

14

Решение:

n = int(input())  # Считываем количество чисел
min_num = 30001  # Начальное значение для минимума (больше всех возможных чисел)
for i in range(n):
    a = int(input())  # Считываем очередное число
    if a % 10 == 4:  # Проверяем, что число оканчивается на 4
        min_num = min(min_num, a)  # Обновляем минимум

print(min_num)  # Выводим результат
            

Объяснение: Для поиска минимального значения инициализируем переменную min_num большим числом (больше всех возможных входных чисел). При нахождении числа, удовлетворяющего условию, сравниваем его с текущим минимумом и обновляем минимум, если текущее число меньше.

Пример 6: Последовательность, оканчивающаяся нулем

Задача: Напишите программу, которая в последовательности натуральных чисел вычисляет сумму всех двузначных чисел, кратных 5. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0.

Пример ввода:

55
120
25
68
0

Пример вывода:

80

Решение:

a = int(input())  # Считываем первое число
sum_nums = 0  # Переменная для суммы
while a != 0:  # Продолжаем, пока не встретим 0
    if a % 5 == 0 and a > 9 and a < 100:  # Двузначное и кратное 5
        sum_nums = sum_nums + a  # Добавляем число к сумме
    a = int(input())  # Считываем следующее число

print(sum_nums)  # Выводим результат
            

Объяснение: Здесь используется цикл while для обработки последовательности неизвестной длины. Проверяем три условия: делимость на 5 и то, что число двузначное (больше 9 и меньше 100). Цикл продолжается, пока входное число не равно 0.

Пример 7: Среднее арифметическое

Задача: Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел или сообщает, что таких чисел нет (выводит «NO»). Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0.

Пример ввода 1:

10
120
49
0

Пример вывода 1:

29.5

Пример ввода 2:

111
1
0

Пример вывода 2:

NO

Решение:

s = 0  # Сумма чисел
q = 0  # Количество чисел
while n := int(input()):  # Считываем число, останавливаемся при 0
    if 9 < n < 100:  # Проверяем, что число двузначное
        q += 1  # Увеличиваем счетчик
        s += n  # Добавляем число к сумме

# Проверяем, были ли найдены подходящие числа
if q > 0:
    print(f'{s / q:.1f}')  # Выводим среднее с одним знаком после запятой
else:
    print('NO')  # Выводим "NO", если таких чисел нет
            

Объяснение: В этой программе мы считаем сумму s и количество q двузначных чисел. После завершения ввода проверяем, были ли найдены подходящие числа (q > 0). Если да, вычисляем и выводим среднее арифметическое (s / q) с одним десятичным знаком, используя форматирование строк. Если подходящих чисел нет (q = 0), выводим сообщение "NO".

Обратите внимание на современный синтаксис Python: while n := int(input()) - это выражение присваивания в условии. Оно позволяет одновременно считать число и проверить его на ноль.

5. Типичные ошибки и как их избежать

Ошибка 1: Неправильная инициализация переменных

При поиске минимума инициализируйте переменную достаточно большим числом, а при поиске максимума - достаточно маленьким.

# Правильно:
min_num = 30001  # Для поиска минимума (больше всех возможных чисел)
max_num = 0     # Для поиска максимума (меньше всех натуральных чисел)

# Неправильно:
min_num = 0     # Если ищем минимум среди положительных чисел
            

Ошибка 2: Деление на ноль при вычислении среднего

Всегда проверяйте, что делитель не равен нулю, особенно при вычислении среднего арифметического.

# Правильно:
if count > 0:
    average = sum / count
    print(average)
else:
    print("NO")  # или другое сообщение

# Неправильно:
average = sum / count  # Может вызвать ошибку, если count = 0
print(average)
            

Ошибка 3: Забыть считать новое число в цикле while

В цикле while необходимо обновлять переменную условия, иначе цикл будет бесконечным.

# Правильно:
a = int(input())
while a != 0:
    # Обработка числа
    a = int(input())  # Не забываем считать следующее число

# Неправильно:
a = int(input())
while a != 0:
    # Обработка числа
    # Нет считывания следующего числа - бесконечный цикл!
            

Ошибка 4: Неправильный порядок действий

При обработке последовательности с завершающим нулем не включайте ноль в обработку.

# Правильно:
a = int(input())
while a != 0:
    # Обработка числа
    a = int(input())

# Неправильно:
while True:
    a = int(input())
    if a == 0:
        break
    # Обработка числа - этот код правильно работает,
    # но требует дополнительной проверки
            

Ошибка 5: Неверное форматирование вывода

Внимательно следуйте требованиям к формату вывода результата.

# Если требуется вывести число с одним знаком после запятой:
print(f'{result:.1f}')  # Python 3.6+
print('{:.1f}'.format(result))  # Более старый способ

# Если требуется вывести целое число:
print(result)
            

6. Шаблоны решений для различных типов задач

Шаблон 1: Поиск количества чисел по условию (известная длина)

n = int(input())  # Количество чисел
count = 0  # Счетчик
for i in range(n):
    a = int(input())
    if условие_для_a:  # Замените своим условием
        count += 1
print(count)
            

Шаблон 2: Поиск суммы чисел по условию (известная длина)

n = int(input())  # Количество чисел
total_sum = 0  # Сумма
for i in range(n):
    a = int(input())
    if условие_для_a:  # Замените своим условием
        total_sum += a
print(total_sum)
            

Шаблон 3: Поиск максимума/минимума по условию (известная длина)

n = int(input())  # Количество чисел
max_val = 0  # Для максимума (или другое начальное значение)
min_val = 30001  # Для минимума (или другое начальное значение)
for i in range(n):
    a = int(input())
    if условие_для_a:  # Замените своим условием
        max_val = max(max_val, a)  # Для поиска максимума
        min_val = min(min_val, a)  # Для поиска минимума
print(max_val)  # или print(min_val)
            

Шаблон 4: Обработка последовательности, завершающейся нулем

a = int(input())
result = 0  # Переменная для результата (замените на нужную)
while a != 0:
    if условие_для_a:  # Замените своим условием
        # Обработка числа
    a = int(input())
print(result)
            

Шаблон 5: Среднее арифметическое с проверкой

sum_vals = 0
count = 0
# Можно использовать любой из двух способов ввода:
# 1) С известным количеством чисел:
n = int(input())
for i in range(n):
    a = int(input())
    if условие_для_a:  # Замените своим условием
        sum_vals += a
        count += 1

# 2) С завершающим нулем:
a = int(input())
while a != 0:
    if условие_для_a:  # Замените своим условием
        sum_vals += a
        count += 1
    a = int(input())

# Общая часть - вывод результата:
if count > 0:
    print(f'{sum_vals / count:.1f}')  # Вывод с точностью до 0.1
else:
    print('NO')  # Если подходящих чисел нет
            

7. Советы для успешного выполнения задания 16

8. Заключение

Задание 16 в ОГЭ по информатике проверяет умение составлять алгоритмы и программы для обработки числовых последовательностей. Чтобы успешно выполнить это задание, важно хорошо понимать основы языка программирования, особенно операторы циклов и условий, а также уметь анализировать условие задачи.

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

Регулярное решение подобных задач значительно повысит ваши шансы успешно справиться с заданием 16 на ОГЭ по информатике.