РУҚА
24

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

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

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

Python
1n = 4
2count = 0
3maximum = 1000
4for i in range(1, n+1):
5    x = int(input())
6    if x % 2 == 0:
7        count += 1
8        if x > maximum:
9            maximum = i
10if count > 0:
11    print(count)
12    print(maximum)
13else:
14    print("NO")
Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

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

6 қадам
1

Для последовательности 2, 15, 44, 15 чётными являются числа 2 и 44, поэтому count после обработки всех чисел равен 2.

2

Переменная maximum изначально равна 1000. Ни одно введённое число не превосходит 1000, поэтому условие x > maximum ни разу не выполняется. В результате программа выводит количество чётных чисел и исходное значение maximum.

$$2\n1000$$
3

Пример последовательности, для которой программа случайно выдаёт правильный ответ: 1000 15 15 15. Чётных чисел одно, максимальное чётное число равно 1000. Программа также выведет 1 и 1000.

4

Первая ошибка: maximum = 1000. Если максимальное чётное число равно 1000, это значение допустимо, но сравнение x > maximum не позволяет корректно найти меньшие значения. Кроме того, при отсутствии подходящей замены программа сохраняет значение 1000 даже тогда, когда такого числа во входе нет. Начальное значение следует заменить на 0, так как все числа неотрицательны.

$$\texttt{maximum = 0}$$
5

Вторая ошибка: при нахождении большего чётного числа в maximum записывается номер элемента i, а не само число x. Нужно записывать значение введённого числа.

$$\texttt{maximum = x}$$

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

Жауап

1) Программа выведет: 2 и 1000. 2) Например, последовательность 1000 15 15 15; правильный ответ: 1 и 1000. 3) Исправления в Python: строку maximum = 1000 заменить на maximum = 0; строку maximum = i заменить на maximum = x.

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

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

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

Заменить maximum = i на maximum = x, но не исправить начальное значение maximum.

Выбрать в качестве исправления maximum = -1, хотя по условию все числа неотрицательные и требуется исправить не более двух строк.

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

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

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

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

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

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