РУҚА
24

Решение: Поиск минимальной цифры

ЕГЭ · Информатика · Задание 24 · Алгоритмы и исполнители
ПовышеннаяФИПИE0EDF1Развёрнутое решение≈ 10 минутРазбор в 6 шагов
Условие

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

Последовательно определите результат работы программы при вводе числа 128, приведите пример трёхзначного числа, при котором программа выдаёт верный ответ, а затем найдите все ошибки. Для каждой ошибки укажите строку с ошибкой и её исправленный вариант. Каждая ошибка затрагивает только одну строку.

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

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

6 шагов
1

Рассмотрим работу программы при вводе числа 128. Сначала minDigit получает значение 9.

2

Из числа 128 последовательно извлекаются цифры 8, 2 и 1. Цифра 8 больше 3 и меньше minDigit, но программа ошибочно присваивает значение minDigit переменной digit. Значение minDigit остаётся равным 9.

3

Для цифр 2 и 1 условие digit > 3 не выполняется. В конце проверка minDigit <= 9 истинна, поэтому программа выводит 9.

4

Пример трёхзначного числа, для которого программа выдаёт верный ответ, — 999. Минимальная цифра, большая 3, равна 9, и программа также выводит 9.

5

Первая ошибка состоит в неверном начальном значении minDigit. Оно должно быть больше любой цифры, чтобы первая подходящая цифра могла заменить его. В программе на Python строку minDigit = 9 нужно заменить на minDigit = 10.

Вторая ошибка состоит в присваивании значения не той переменной. При обнаружении меньшей подходящей цифры нужно обновлять minDigit. Строку digit = minDigit нужно заменить на minDigit = digit.

Ответ

1) При вводе 128 программа выводит 9. 2) Например, число 999: правильный ответ и вывод программы — 9. 3) Для Python исправления: minDigit = 9 заменить на minDigit = 10; digit = minDigit заменить на minDigit = digit.

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

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

Указывать 2 как результат для числа 128, не учитывая условие digit > 3.

Исправлять только присваивание digit = minDigit и не исправлять начальное значение minDigit.

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

Считать строку if minDigit <= 9 ошибочной, хотя после правильной инициализации minDigit = 10 она работает корректно.

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

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

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

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