РУҚА
24

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

ЕГЭ · Информатика · Тапсырма 24 · Бағдарламалау негіздері
КүрделіФИПИ31077AТолық шешім≈ 10 минутТалдау 5 қадам
Условие

Требовалось написать программу, которая получает на вход натуральное число $N$, не превосходящее $10^9$, и выводит число, равное количеству цифр 2 в десятичной записи числа $N$. Программист написал программу неправильно. Ниже приведена программа на нескольких языках программирования.

Последовательно выполните следующие действия:
1. Определите, что выведет программа при вводе числа 324.
2. Приведите пример входного числа $N$, при котором программа, несмотря на ошибки, выдаёт верный ответ.
3. Найдите допущенные программистом ошибки и исправьте их. Исправление каждой ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки выпишите строку, в которой она сделана, и приведите правильный вариант строки. Известно, что в тексте программы нужно исправить не более двух строк, чтобы она стала работать правильно. Достаточно указать ошибки и способ их исправления для одного языка программирования. Требуется найти ошибки в имеющейся программе, а не написать другую программу, использующую иной алгоритм решения.

Программа на языке Python:

N = int(input())
R = 0
while N > 0:
d = N % 10
if d != 2:
R = R + 1
N = N // 10
print(d)

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

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

5 қадам
1

При вводе 324 цикл последовательно выделяет цифры справа налево: сначала 4, затем 2, затем 3. После обработки цифры 3 число N становится равным 0, и цикл завершается.

$$d: 4 \to 2 \to 3$$
2

В исходной программе переменная R увеличивается для цифр, не равных 2. Для числа 324 она станет равна 2, поскольку цифры 4 и 3 не равны 2. Однако программа выводит не R, а последнее значение d, то есть 3.

$$R = 2,\quad d = 3$$
3

Пример входного числа, при котором исходная программа даёт верный ответ, — 22. После обработки цифр 2 и 2 значение d равно 2, а правильное количество цифр 2 также равно 2.

$$N=22:\quad d=2,\quad \text{количество цифр 2}=2$$
4

Первая ошибка находится в условии: счётчик должен увеличиваться при d == 2, а не при d != 2.

$$if\ d\ !=\ 2:\ \longrightarrow\ if\ d\ ==\ 2:$$

Вторая ошибка находится в последней строке: необходимо вывести счётчик R, содержащий количество найденных цифр 2.

$$print(d)\ \longrightarrow\ print(R)$$
Жауап

1) При вводе 324 программа выведет 3. 2) Например, N = 22. 3) В Python нужно заменить `if d != 2:` на `if d == 2:` и `print(d)` на `print(R)`.

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

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

Указать ответ 2 для числа 324, посчитав цифры 2 вместо фактического вывода ошибочной программы.

Исправить условие на d != 2, хотя оно считает цифры, отличные от 2.

Заменить print(d) на print(R), но не исправить условие.

Предложить новую программу вместо исправления только ошибочных строк.

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

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

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

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