РУҚА
24

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

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

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

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

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

6 қадам
1

Из последовательности 2 19 24 3 числа 2 и 19 не делятся на 3, поэтому count станет равным 2. Числа 24 и 3 делятся на 3.

2

Переменная minimum изначально равна 1. Для числа 2 условие x < minimum ложно, поэтому значение minimum не изменяется. Для числа 19 условие также ложно. Программа выводит количество 2 и значение minimum 1.

$$2\newline1$$
3

Пример последовательности, для которой программа случайно выдаёт правильный ответ: 1 3 6 9. Единственное число, не делящееся на 3, — 1, поэтому правильный ответ: 1 и 1. Программа также выведет 1 и 1.

4

Первая ошибка: начальное значение minimum равно 1, хотя среди неотрицательных чисел может встретиться любое значение от 0 до 1000. Для корректного поиска минимума удобно установить minimum = 1001.

5

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

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

Жауап

Для последовательности 2 19 24 3 программа выведет 2 и 1. Пример последовательности с правильным результатом: 1 3 6 9. Ошибочные строки и исправления: minimum = 1 заменить на minimum = 1001; minimum = i заменить на minimum = x.

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

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

Указать в качестве результата минимальное подходящее число 2 вместо фактического вывода программы 1.

Исправить только строку minimum = i и не изменить начальное значение minimum.

Записать в minimum нөмір позиции найденного числа, а не само число.

Привести последовательность без ни одного числа, не делящегося на 3, хотя требуется хотя бы одно такое число.

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

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

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

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