惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
M
MIT News - Artificial intelligence
博客园_首页
IT之家
IT之家
L
LangChain Blog
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
博客园 - Franky
云风的 BLOG
云风的 BLOG
罗磊的独立博客
量子位
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
博客园 - 叶小钗
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
T
Tailwind CSS Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
ОГЭ информатика. 16 задание на Python
im-the-lazie · 2026-05-21 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение4 мин

Охват и читатели654

Туториал

Если вы, смотря 16 задание, закрываете сайт, на котором готовитесь к ОГЭ по информатике, вам стоит прочитать эту статью. Кстати, вам будет полезно, даже если вы хотите структурировать свои знания. Чтобы понять эту статью, вы должны знать: циклы while и for, условные операторы if, elif, else, базовые команды, базовая работа с переменными и типами данных на Python.

По сути, есть 2 типа 16-х заданий: На цикл for и на цикл while. Кстати, цикл for вполне заменяем циклом while, но это мы сегодня затрагивать не будем.

Задания на цикл for.

Нам удобнее использовать цикл for, когда наша программа получает кол-во ведённых данных. Чаще всего, используется такая фраза:

Программа получает на вход количество чисел в последовательности, а затем сами числа.

Наша задача получить кол-во чисел, именно столько раз будет повторяться наш цикл for. Разберём на примере:

Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 5. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число  — максимальное число, кратное 5.

num_of_num = int(input())                  # Мы получаем кол-во чисел
comparison = 0                             # Эта переменная нам понадобится для сравнения чисел
for i in range(num_of_num):                # Создаём цикл
    num = int(input())                     # Получем наши числа
    if num % 5 == 0:                       # Проверяем делимость на 5, так как числа должны быть кратны 
        comparison = max(comparison, num)  # Выбор максимального числа из прошлого и нового
print(comparison)                          # Вывод ответа

Переменная для сравнения равна нулю, чтобы первое же число, которое кратно 5, стало максимальным. Если бы было бы минимальное число, то наша переменная имела бы максимально возможное число + 1, чтобы первое же число, подходящие условием стало минимальным.

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

Рассмотрим ещё одну задачу:

Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо нее автомобилей, округляя значения скорости до целых чисел. Необходимо определить максимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была меньше 30 км/ч, выведите «YES», иначе выведите «NO».

Программа получает на вход число проехавших автомобилей N (1 < N < 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести максимальную скорость, затем YES или NO.

Выглядит гораздо страшнее, но структура абсолютно такая же:

num_of_auto = int(input())                   # Мы получаем кол-во чисел
comparison = 0                               # Эта переменная нам понадобится для сравнения скоростей
check = False                                # Для проверки, будет ли скорость меньше 30
for i in range(num_of_auto):                 # Создаём цикл
    speed = int(input())                     # Получаем скорости
    if speed < 30:                           # Проверяем, будет YES или NO
        check = True
    comparison = max(comparison, speed)      # Находим максимальную скорость
if check == True:                            # Выводем ответ в зависимости от скоростей
    print(comparison)
    print("YES")
else:
    print(comparison)
    print("NO")

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

Задания на цикл while.

Этот цикл нам удобно использовать, когда кол-во введённых данных неизвестно. Пример:

Напишите программу, которая в последовательности натуральных чисел определяет количество всех четных чисел, кратных 5. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число: количество всех четных чисел, кратных 5.

num_of_num = 0                          # Кол-во чисел, котоые делятся и на 2, и на 5
while True:                             # Создаём цикл
    num = int(input())                  # Получаем числа
    if num == 0:                        # Если ноль, то последовательность заканичвается и мы прекращаем цикл
      break
    else:
      if num % 2 == 0 and num % 5 == 0:   # Проверяем чётность и делимость на 5
          num_of_num += 1                 # Если подходит, то увеличиваем кол-во чисел на 1
print(num_of_num)                       # Выводим ответ

Код имеет лишние элементы, но я старался написать его максимально для понимания алгоритма. Последовательность в таких задачах кончается 0, так что если мы получаем 0, то прекращаем цикл. важно это написать до проверки на четность и делимость на 5, чтобы ответ был истинным. Структуру while True и прекращаем, если 0. Рассмотрим задачу посложнее:

Напишите программу, которая в последовательности целых чисел определяет количество нечетных чисел, кратных 3. Программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введенные числа по модулю не превышают 30 000. Программа должна вывести два числа: длину последовательности (завершающий 0 не учитывается) и количество нечетных чисел, кратных 3.

sequence_length = 0                           # Переменная для определения длины последовательност
num_of_num = 0                                # Перменная для определения кол-ва чисел кратных 3 и кратнхы 2
while True:                                   # Создаём цикл
    num = int(input())                        # Получаем числа
    if num == 0:                              # Проверяем на ноль
        break                                 # Если 0, то завершаем
    else:                                     # Если нет
        sequence_length += 1                  # Плюс к кол-ву чисел в последовательности
        if num % 2 == 1 and num % 3 == 0:     # Проверяем на четность и делимость на 3
            num_of_num += 1                   # Если да, то увеличиваем кол-во подходящих чисел
print(sequence_length)                        # Выводим ответы
print(num_of_num)

Код также для понимания, его можно упростить, но это не сделает его сильно короче, он и без этого получился не длинный. Можем заметить здесь такую же структуру, как и в прошлой задаче.

Надеюсь, что эта статья помогла разобраться вам в 16 задаче и вы получите ту оценку, которая вам нужна на ОГЭ. Советую порешать ещё 16-х заданий, чтобы вы привыкли. Я брал задачи с решу ОГЭ, но про этот сайт ходит не самая лучшая репутация, из-за не актуальных задач, но структура решения задач будет такой же. Удачи на экзаменах!