РУҚА
25

Шешімі: Замена элементов массива

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

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

Исходный массив и переменные объявлены в условии. В ответе приведите фрагмент программы, который должен находиться на месте многоточия. Можно использовать Python, Бейсик, Алгоритмический язык, Паскаль или C++. Не используйте переменные, не объявленные в условии.

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

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

5 қадам
1

Поскольку гарантируется наличие хотя бы одного элемента, оканчивающегося на 0, можно начать поиск минимума со значения $10000$.

$$k = 10000$$
2

В первом проходе проверяем последнюю цифру каждого элемента. Если элемент оканчивается на 0 и меньше текущего минимума, сохраняем его в переменной $k$.

$$a[i] \bmod 10 = 0 \land a[i] < k$$
3

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

$$a[i] \bmod 10 = 0 \Rightarrow a[i] = k$$
4

После замены выводим все элементы массива. Например, корректный фрагмент на Python:

Код: k = 10000; for i in range(n): if a[i] % 10 == 0 and a[i] < k: k = a[i]; for i in range(n): if a[i] % 10 == 0: a[i] = k; for i in range(n): print(a[i])

Жауап

Один из корректных нұсқа на Python:
k = 10000
for i in range(n):
if a[i] % 10 == 0 and a[i] < k:
k = a[i]
for i in range(n):
if a[i] % 10 == 0:
a[i] = k
for i in range(n):
print(a[i])

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

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

Попытка заменить элементы в том же проходе, в котором ещё не найден минимум.

Проверка условия a[i] % 10 == 1 вместо a[i] % 10 == 0.

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

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

Неверные индексы массива при переходе между Python и языками с индексацией от 1.

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

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

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

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