РУҚА
24

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

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

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

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

Шешімін қадамдап көрсету

5 қадам
1

При вводе 231 сначала выполняется присваивание minDigit = 231 % 10, поэтому minDigit получает значение 1.

$$231 \bmod 10 = 1$$
2

Затем программа рассматривает цифры 1, 3 и 2. Цифра 2 чётная, но условие 2 < 1 ложно, поэтому значение minDigit не изменяется. В конце проверка minDigit == 0 также ложна, и программа выводит 1.

3

Пример числа, для которого программа случайно выдаёт правильный ответ, — 246. Начальное значение minDigit равно 6, затем оно заменяется на 4 и 2. В результате выводится 2 — минимальная чётная цифра числа.

4

Первая ошибка состоит в начальной инициализации минимума последней цифрой числа. Последняя цифра может быть нечётной и помешать поиску минимума. Исправление: minDigit = 10.

Вторая ошибка состоит в проверке minDigit == 0. Ноль является допустимой минимальной чётной цифрой, поэтому отсутствие найденной цифры нужно обозначить значением 10. Исправление: if minDigit == 10:.

Жауап

1) При вводе 231 программа выводит 1. 2) Например, при вводе 246 программа выводит 2, что является правильным ответом. 3) В Python нужно заменить строку minDigit = N % 10 на minDigit = 10, а строку if minDigit == 0: на if minDigit == 10:.

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

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

Считать, что при вводе 231 программа выводит 2, не учитывая начальное значение minDigit = 1.

Использовать 0 как признак отсутствия чётных цифр, хотя 0 сама является чётной цифрой.

Исправлять несколько команд в одной строке или переписывать алгоритм целиком вместо замены ровно двух строк.

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

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

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

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