Разбор 24 задания ЕГЭ 2020 по информатике из демоверсии

Разбор 24 задания ЕГЭ 2020 по информатике из демонстрационного варианта. Проверяемые элементы содержания: умение прочесть фрагмент программы на языке программирования и исправить допущенные ошибки.

Задание

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

Программа на пяти языках программирования

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

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

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

3. Найдите допущенные программистом ошибки и исправьте их.

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

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

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

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

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

Разбор 24 задания ЕГЭ

Решение использует запись программы на Паскале.

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.03.2020 Обновлено: 15.03.2020
Поделись с друзьями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

шестнадцать − 7 =