РУҚА
24

Решение: Исправление программы обработки чисел

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

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

Последовательно определите результат работы программы для последовательности $20\ 93\ 40\ 39$, приведите пример последовательности, содержащей хотя бы одно чётное число, для которой программа выведет правильный ответ, а затем найдите и исправьте не более двух ошибок в программе на Python. Исправление каждой ошибки должно затрагивать только строку, в которой находится ошибка.

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

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

7 шагов
1

В последовательности $20\ 93\ 40\ 39$ чётными являются числа 20 и 40. Они занимают позиции 1 и 3. Программа увеличивает count два раза, поэтому count становится равным 2.

2

Из-за ошибки программа складывает номера позиций, а не сами чётные числа: $sum = 1 + 3 = 4$. Поэтому она выводит сначала 2, затем 4.

3

Пример последовательности, для которой ошибка сложения не приводит к неправильному результату: $1\ 2\ 1\ 1$. Единственное чётное число равно 2 и стоит на позиции 2. Программа выводит 1 и 2, что совпадает с правильным ответом.

4

Первая ошибка находится в строке `sum = sum + i`: вместо номера позиции нужно прибавлять введённое чётное число.

5

Правильная строка: `sum = sum + x`.

6

Вторая ошибка находится в строке `if sum > 0:`. Проверка суммы неверна, поскольку чётные числа могут быть равны нулю. Например, при наличии числа 0 сумма равна 0, но выводить «NO» нельзя.

Правильная строка: `if count > 0:`. Она проверяет, встретилось ли хотя бы одно чётное число.

Ответ

1) Программа выведет 2 и 4. 2) Например, последовательность 1 2 1 1: правильный ответ — 1 и 2, и программа выведет то же самое. 3) Исправления в Python: `sum = sum + i` заменить на `sum = sum + x`; `if sum > 0:` заменить на `if count > 0:`.

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

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

Складывать номера позиций чётных чисел вместо самих чисел.

Считать, что сумма равна нулю только при отсутствии чётных чисел.

Не учитывать, что 0 является чётным числом.

Указывать исправления, изменяющие сразу несколько строк программы.

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

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

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

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