Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №24
  • Задание №24
  • Задание №63148 ЕГЭ Информатике

    Условие задания #63148

    №24 по КИМ

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

    N = int(input())
    minDigit = N % 10
    while N > 0:
        digit = N % 10
        if digit % 2 == 0:
            if digit < minDigit:
                minDigit = digit
        N = N // 10
     if minDigit == 0:
        print("NO")
     else:
        print(minDigit)

    Последовательно выполните следующее.

    1.  Напишите, что выведет эта программа при вводе числа 231.

    2.  Приведите пример такого трёхзначного числа, при вводе которого приведённая программа, несмотря на ошибки, выдаёт верный ответ.

    3.  Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

    1)  выпишите строку, в которой сделана ошибка;

    2)  укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

    Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.

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

    Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

    Ответ

    Ответ:

    Решение

    1.  Программа выведет число 1.

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

    Замечание для проверяющего. Программа работает неправильно из-за неверной начальной инициализации и неверной проверки отсутствия чётных цифр. Соответственно, программа будет выдавать верный ответ, если вводимое число не содержит 0, содержит хотя бы одну чётную цифру и наименьшая чётная цифра числа не больше младшей (крайней правой) цифры числа (или просто стоит последней).

    3.  В программе есть две ошибки. Первая ошибка. Неверная инициализация ответа (переменная minDigit).

    Строка с ошибкой:

    minDigit := N mod 10;

    Верное исправление:

    minDigit := 10;

    Вместо 10 может быть использовано любое целое число, большее 8.

    Вторая ошибка. Неверная проверка отсутствия чётных цифр.

    Строка с ошибкой:

    if minDigit = 0 then

    Верное исправление:

    if minDigit = 10 then

    Вместо 10 может быть другое число, большее 8, которое было положено в minDigit при исправлении первой ошибки, или проверка, что

    minDigit > 8

    Видеоразбор:

    Понятно ли решение?

    Похожие задания

    15
    Задание №89330Задание №73587Задание №51422Задание №51423Задание №73576Задание №73632Задание №73629Задание №73630Задание №73631Задание №73636Задание №73578Задание №73579Задание №73580Задание №73582Задание №73583
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме