РУҚА
24

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

ЕГЭ · Информатика · Тапсырма 24 · Бағдарламалау негіздері
ЖоғарыФИПИ378D57Толық шешім≈ 15 минутТалдау 7 қадам
Условие

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

Программист написал программу неправильно. Рассмотрите приведённую ниже программу на Python.

Последовательно выполните следующие действия: вычислите результат работы программы при вводе числа 645; приведите пример трёхзначного числа, при вводе которого программа выдаёт верный ответ; найдите все ошибки в программе. Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки выпишите ошибочную строку и приведите её правильный вариант. Требуется найти ошибки в данной программе, а не написать другую программу с иным алгоритмом.

Python
1N = int(input())
2sum = N % 10
3while N > 0:
4    digit = N % 10
5    if digit % 3 > 0:
6        sum = digit
7    N = N // 10
8if sum > 0:
9    print(sum)
10else:
11    print("NO")
Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

7 қадам
1

При вводе числа 645 цифры извлекаются справа налево: сначала 5, затем 4, затем 6.

2

Сначала выполняется `sum = N % 10`, поэтому sum получает значение 5. Цифра 5 не кратна 3, и затем sum снова получает значение 5.

3

Цифра 4 также не кратна 3, поэтому строка `sum = digit` заменяет значение 5 на 4. Цифра 6 кратна 3 и не изменяет sum.

4

В результате программа выводит 4.

5

Пример трёхзначного числа, для которого программа выдаёт верный ответ, — 300. Все его цифры кратны 3, поэтому правильный результат — `NO`, и программа также выводит `NO`.

6

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

Вторая ошибка состоит в присваивании значения очередной цифры вместо добавления её к накопленной сумме.

Жауап

Для числа 645 программа выводит 4. Пример трёхзначного числа: 300. Ошибочные строки и исправления: `sum = N % 10` → `sum = 0`; `sum = digit` → `sum += digit`.

Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.

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

Указать правильную сумму цифр числа 645 — 9 — вместо результата работы ошибочной программы.

Исправить только строку `sum = digit`, не изменив начальное значение sum.

Считать ошибкой условие `digit % 3 > 0`: оно правильно проверяет, что цифра не кратна 3.

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

Закрепить приёмВ теме «Бағдарламалау негіздері» ещё 159 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

Тапсырманы қалай шешу керек 24 ЕГЭ, информатика

Бұл есептің талдауы келесіге бөлінген: 7 шагов: видно, откуда берётся каждое число и где теряется балл. Жауап есептеулердің жанында келтірілген, олардың орнына емес.

Задача из темы «Бағдарламалау негіздері»: в ней 160 задач, и у каждой есть такой же разбор. Тіркеу қажет емес.