РУҚА
24

Решение: Исправление программы обработки цифр

ЕГЭ · Информатика · Задание 24 · Основы программирования
ВысокаяФИПИF2307AРазвёрнутое решение≈ 15 минутРазбор в 5 шагов
Условие

На обработку поступает положительное целое число, не превышающее $10^9$. Нужно написать программу, которая выводит на экран количество цифр числа, делящихся на 3. Если в числе нет цифр, делящихся на 3, требуется вывести «NO». Программист написал программу неправильно. В программе используются разные языки программирования; достаточно указать ошибки и способы их исправления для одного языка. Напоминание: 0 делится на любое натуральное число.

Последовательно выполните три пункта: определите результат работы программы при вводе числа 947; приведите пример трёхзначного числа, содержащего хотя бы одну цифру, делящуюся на 3, при вводе которого программа выдаёт верный ответ; найдите все ошибки в программе. Каждая ошибка затрагивает только одну строку и исправляется без изменения других строк.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

Решение по шагам

5 шагов
1

Обработаем число 947 справа налево. Сначала digit = 7: цифра не делится на 3, count остаётся равным 0. Затем digit = 4: count также равен 0. Наконец digit = 9: цифра делится на 3, поэтому count увеличивается на 9 и становится равным 9.

$$count = 9$$
2

После завершения цикла значение digit равно 9. Проверка count == digit выполняется, поэтому программа выводит число 9.

$$9 = 9$$
3

Подходящий пример трёхзначного числа — 300. При его обработке цифры 0, 0 и 3 дают count = 3, последняя обработанная цифра равна 3, поэтому программа выводит 3. В числе 300 три цифры делятся на 3, значит ответ действительно равен 3.

$$3 = 3$$
4

Первая ошибка находится в строке увеличения счётчика. Нужно считать количество подходящих цифр, поэтому при обнаружении такой цифры к счётчику следует прибавлять 1.

$$count = count + 1$$

Вторая ошибка находится в условии после цикла. Наличие подходящих цифр определяется значением count, а не сравнением count с последней обработанной цифрой. Поэтому условие нужно заменить на проверку count > 0.

$$if count > 0:$$
Ответ

1) При вводе 947 программа выведет 9. 2) Например, 300: программа выведет 3, что является правильным ответом. 3) В Python исправить строки: count = count + digit заменить на count = count + 1; if count == digit: заменить на if count > 0:.

Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.

Где здесь ошибаются

Считать количество подходящих цифр равным сумме самих цифр.

Указать для числа 947 ответ 1, не учитывая ошибку в исходной программе.

Исправить условие на count == 0 вместо проверки наличия хотя бы одной подходящей цифры.

Не учитывать, что 0 делится на 3.

Закрепить приёмВ теме «Основы программирования» ещё 159 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 24 ЕГЭ, информатика

Разбор этой задачи разложен на 5 шагов: видно, откуда берётся каждое число и где теряется балл. Ответ приведён рядом с выкладками, а не вместо них.

Задача из темы «Основы программирования»: в ней 160 задач, и у каждой есть такой же разбор. Регистрация не нужна.