РУҚА
25

Решение: Обработка массива из 30 элементов

ЕГЭ · Информатика · Задание 25 · Массивы и строки
ПовышеннаяФИПИE6288CРазвёрнутое решение≈ 10 минутРазбор в 4 шага
Условие

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

Например, для исходного массива из шести элементов:
141
256
92
148
511
4
программа должна вывести следующий массив:
2
256
92
148
2
4

Исходные данные объявлены заранее: массив содержит 30 элементов, а также доступны переменные для индексов и счётчика. Запрещается использовать переменные, не описанные в условии, но разрешается не использовать некоторые из описанных переменных. В качестве ответа необходимо привести фрагмент программы, который должен находиться на месте многоточия. Допускается записать решение на другом языке программирования, указав его название и версию; при этом необходимо использовать те же исходные данные и переменные, которые предложены в условии.

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

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

4 шага
1

Заведём счётчик подходящих элементов и обнулим его.

$$j = 0$$
2

Первым проходом просмотрим все элементы массива. Элемент учитывается, если он больше 100 и остаток от деления на 4 не равен нулю.

$$a[i] > 100 \land a[i] \bmod 4 \ne 0$$
3

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

Например, на языке Python подходящий фрагмент имеет вид:

j = 0
for i in range(0, n):
if a[i] > 100 and a[i] % 4 != 0:
j += 1
for i in range(0, n):
if a[i] > 100 and a[i] % 4 != 0:
a[i] = j
print(a[i])

Ответ

Python: j = 0; первым циклом подсчитать элементы, удовлетворяющие условиям a[i] > 100 и a[i] % 4 != 0; вторым циклом заменить их на j и вывести все элементы массива.

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

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

Заменяют элементы во время первого подсчёта, из-за чего последующие проверки могут выполняться уже для изменённых значений.

Проверяют только условие a[i] > 100 и забывают проверить некратность 4.

Используют условие a[i] % 4 == 0 вместо условия некратности.

Выводят только заменённые элементы, а не весь изменённый массив.

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

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

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

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

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