РУҚА
25

Шешімі: Замена кратных семи минимумом

ЕГЭ · Информатика · Тапсырма 25 · Массивтер және жолдар
КүрделіФИПИC33970Толық шешім≈ 8 минутТалдау 4 қадам
Условие

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать натуральные значения от 1 до 10 000 включительно. Опишите на одном из языков программирования алгоритм, который находит минимум среди элементов массива, делящихся нацело на 7, а затем заменяет каждый элемент, делящийся нацело на 7, на число, равное найденному минимуму. Гарантируется, что хотя бы один такой элемент в массиве есть. В качестве результата необходимо вывести изменённый массив, каждый элемент выводится с новой строки.

Исходные данные объявлены заранее. Разрешается использовать только объявленные переменные. В Python доступны массив a, переменная n и целочисленные переменные i, j, k; в остальных языках доступны массив a, константа N и переменные i, j, k. В ответе необходимо привести фрагмент программы, который заменяет многоточие после ввода элементов массива. Можно использовать любой из предложенных языков программирования, указав его название и версию.

Тапсырманы ашып, өзіңіз шешіңіз
Дальше ответЕгер әлі шешіп жатсаңыз – кеңестерден бастаңыз: олар жауапқа жетелейді, бірақ оны ашпайды.
К подсказкам

Шешім по шагам

4 қадам
1

Выбираем Python. Так как все элементы находятся в диапазоне от 1 до 10 000, начальное значение минимума можно взять равным 10001.

$$k = 10001$$
2

Первым проходом рассматриваем только элементы, кратные 7, и сохраняем среди них наименьший.

$$a[i] \mathbin{\%} 7 = 0 \Rightarrow k = \min(k, a[i])$$
3

Вторым проходом заменяем каждый элемент, кратный 7, на найденное значение k и выводим все элементы массива.

$$a[i] \mathbin{\%} 7 = 0 \Rightarrow a[i] = k$$

Один из возможных фрагментов программы на Python:

Жауап

Python:
```python
k = 10001
for i in range(n):
if a[i] % 7 == 0 and a[i] < k:
k = a[i]

for i in range(n):
if a[i] % 7 == 0:
a[i] = k
print(a[i])
```

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

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

Инициализация минимума нулём: при поиске минимума среди натуральных чисел это даст неверный результат.

Замена элементов во время первого прохода до того, как найден настоящий минимум.

Проверка делимости с использованием a[i] / 7 вместо a[i] % 7 == 0.

Вывод только элементов, кратных 7, вместо всего изменённого массива.

Использование дополнительной переменной, не объявленной в условии.

Закрепить приёмВ теме «Массивтер және жолдар» ещё 237 тапсырма — жауабымен және дәл осындай талдауымен.
Жаттығу

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

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

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