РУҚА
24

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

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

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

```python
N = int(input())
maxDigit = N % 10
while N > 0:
digit = N % 10
if digit < 5:
if digit > maxDigit:
maxDigit = digit
N = N // 10
if maxDigit == 0:
print("NO")
else:
print(maxDigit)
```

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

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

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

5 қадам
1

При вводе числа 137 первоначально выполняется присваивание maxDigit = 137 % 10, поэтому maxDigit получает значение 7.

2

Затем программа последовательно рассматривает цифры 7, 3 и 1. Цифры 3 и 1 меньше 5, но ни одна из них не больше уже записанного значения maxDigit = 7. Поэтому значение maxDigit не изменяется.

3

Так как maxDigit не равно 0, программа выводит число 7.

4

Например, при вводе числа 123 программа первоначально получает maxDigit = 3. При обработке цифр 3, 2 и 1 значение maxDigit остаётся равным 3, что является правильным ответом.

Ошибка находится в строке инициализации максимальной цифры. Последняя цифра исходного числа может быть не меньше 5, хотя в числе могут присутствовать цифры, меньшие 5. Поэтому начальное значение должно быть равно 0.

$$maxDigit = 0$$
Жауап

1) При вводе 137 программа выведет 7. 2) Например, при вводе 123 программа выдаёт верный ответ 3. 3) Ошибочная строка: maxDigit = N % 10. Исправление: maxDigit = 0.

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

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

Указать в качестве вывода для числа 137 значение 3, не учитывая ошибочную инициализацию maxDigit.

Считать ошибкой условие maxDigit == 0, хотя при корректной инициализации оно правильно обрабатывает отсутствие цифр, меньших 5.

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

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

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

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

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