РУҚА
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 задач, и у каждой есть такой же разбор. Тіркеу қажет емес.