P
pro·school.ru
Каталог школ

Замена элементов массива по условию

💻 Информатика · 8 класс

Изменение элементов массива

Часто требуется не просто прочитать элементы массива, но и изменить некоторые из них прямо на месте. Например, заменить все отрицательные числа нулями, удвоить чётные значения или ограничить слишком большие числа сверху. Для этого в цикле проверяют условие и при его выполнении присваивают элементу новое значение.

Ключевая идея в том, что элемент A[i] можно не только читать, но и записывать. Запись вида A[i] = новое_значение заменяет элемент, стоящий по индексу i, на указанное значение. Все остальные элементы при этом не меняются.

Общая схема

для i от 1 до n:
  если условие для A[i]:
    A[i] = новое значение

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

Разбор примера

Дан массив A = [3, -5, 8, -2, 0]. Заменим все отрицательные элементы нулями, оставив остальные без изменений.

для i от 1 до 5:
  если A[i] < 0:
    A[i] = 0
Было: 3, -5, 8, -2, 0
Стало: 3, 0, 8, 0, 0
ЗадачаУсловиеДействие замены
Убрать отрицательныеA[i] < 0A[i] = 0
Удвоить чётныеA[i] mod 2 = 0A[i] = A[i] * 2
Ограничить сверхуA[i] > 100A[i] = 100
Частая ошибка. Создавать отдельную переменную и менять её копию вместо самого элемента массива. Тогда массив остаётся прежним, ведь изменилась лишь копия. Изменять нужно именно A[i].

Подсчёт изменённых

Если нужно ещё и узнать, сколько элементов было изменено, заводят счётчик и увеличивают его на единицу внутри условия — рядом с присваиванием нового значения. Так одновременно решаются две задачи: и преобразование массива, и подсчёт сделанных замен.

Иногда новое значение элемента зависит от его прежнего значения. Например, при удвоении чётных чисел справа от знака присваивания стоит A[i] * 2, то есть программа сначала читает старое значение элемента, умножает его на два и тут же записывает результат обратно в ту же ячейку. Это нормально: в одном операторе присваивания элемент успевает быть прочитанным и заново записанным. Главное — помнить, что справа от знака равенства вычисляется выражение, а слева указывается, куда поместить итог.

Преобразование массива по условию — частая операция при обработке данных: так очищают отрицательные показания датчиков, ограничивают слишком большие значения допустимым пределом или заменяют ошибочные данные нулями. Поэтому уверенно владеть этим приёмом важно для решения практических задач.

Кратко о главном

  • Элемент массива можно как читать, так и перезаписывать.
  • Меняются только те элементы, что удовлетворяют условию.
  • Изменять нужно сам A[i], а не его отдельную копию.
  • Счётчик внутри условия подсчитывает число выполненных замен.