Задание 16. Программирование на языке программирования — теория и разбор
Совет: выделите текст, чтобы спросить у ИИ, или наведите (на телефоне — тапните) на подчёркнутое слово — увидите подсказку.
Задание 16. Программирование на языке программирования — теория и разбор
Задание всегда одной и той же формы: дана последовательность чисел, нужно посчитать что-то по условию — количество, сумму или экстремум — и вывести один ответ. Язык программирования — любой, программу реально запускают на нескольких наборах входных данных.
Что нужно знать
Типовая формулировка: программа получает на вход количество чисел N, а затем сами N натуральных чисел; нужно посчитать, сколько из них (или сумму тех из них, или максимум среди тех из них) удовлетворяют условию — обычно про делимость («кратно A, но не кратно B»).
Решение всегда строится по одному и тому же шаблону: цикл по всем N числам, внутри цикла — проверка условия, при выполнении — обновление счётчика или накопленной суммы.
Условие «кратно A, но не кратно B» — это два отдельных условия, соединённых «И»: остаток от деления на A равен 0 и одновременно остаток от деления на B не равен 0 — забыть вторую часть означает посчитать лишние числа.
Правило проверки решения: программу запускают не на одном, а на нескольких скрытых наборах входных данных (обычно трёх) — 2 балла ставится, только если ответ верный на всех наборах, а не только на примере из условия.
Разбор примера
Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 3, но не кратных 5. Программа получает на вход количество чисел в последовательности, а затем сами числа.
Входные данные:
6
15
9
21
25
12
18
Как думать. Заводим счётчик, в цикле по всем числам проверяем оба условия сразу (кратно 3 И не кратно 5), при выполнении увеличиваем счётчик.
Показать решение и ответ
Отбираем числа, кратные 3: 15, 9, 21, 12, 18 (25 не подходит — не кратно 3).
Из них исключаем кратные 5: 15 исключается (кратно и 3, и 5). Остаются: 9, 21, 12, 18 — четыре числа.
Программа (Python):
n = int(input())
count = 0
for _ in range(n):
a = int(input())
if a % 3 == 0 and a % 5 != 0:
count += 1
print(count)
Та же программа на Паскале:
var n, i, a, k: integer;
begin
readln(n); k := 0;
for i := 1 to n do begin
readln(a);
if (a mod 3 = 0) and (a mod 5 <> 0) then k := k + 1;
end;
writeln(k)
end.
Ответ: 4
Как решить в Python
Код из разбора — рабочее решение, здесь та же логика с встроенным набором данных для самопроверки:
numbers = [15, 9, 21, 25, 12, 18]
count = sum(1 for a in numbers if a % 3 == 0 and a % 5 != 0)
print(count) # 4
На экзамене важно читать числа именно через input(), а не хранить готовый список в коде — программу проверяют на нескольких разных наборах входных данных, которых заранее не видно.
Похожие материалы
Задание 15. Алгоритм для исполнителя Робот — теория и разбор
Команды Робота, циклы «пока свободно» и алгоритм, работающий для поля любого размера — разбор примера и проверка в Python.
Задание 14. Обработка данных в электронной таблице — теория и разбор
СЧЁТЕСЛИ, СУММЕСЛИ и круговая диаграмма для большого массива данных — разбор примера и проверка в Python.
Задание 13.2. Создание текстового документа — теория и разбор
13.2 Текстовый документ
Критерии оценивания текста и таблицы по образцу: отступы, выравнивание, формат файла — разбор примера и чек-лист.
Задание 13.1. Создание презентации — теория и разбор
13.1 Презентация
Критерии оценивания презентации из 3 слайдов: структура, шрифт, изображения, формат файла — разбор примера и чек-лист.
Задание 12. Файловая система: количество и объём файлов — теория и разбор
Маски имён файлов (* и ?) и перевод байтов в килобайты по степеням двойки — разбор примера и проверка в Python.
Задание 11. Поиск информации в файлах и каталогах — теория и разбор
Двухшаговая техника поиска: найти файл среди папок, затем найти фразу внутри файла — разбор примера и проверка в Python.