Замена элементов массива по условию
💻 Информатика · 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] < 0 | A[i] = 0 |
| Удвоить чётные | A[i] mod 2 = 0 | A[i] = A[i] * 2 |
| Ограничить сверху | A[i] > 100 | A[i] = 100 |
Частая ошибка. Создавать отдельную переменную и менять её копию вместо самого элемента массива. Тогда массив остаётся прежним, ведь изменилась лишь копия. Изменять нужно именно A[i].Подсчёт изменённых
Если нужно ещё и узнать, сколько элементов было изменено, заводят счётчик и увеличивают его на единицу внутри условия — рядом с присваиванием нового значения. Так одновременно решаются две задачи: и преобразование массива, и подсчёт сделанных замен.
Иногда новое значение элемента зависит от его прежнего значения. Например, при удвоении чётных чисел справа от знака присваивания стоит A[i] * 2, то есть программа сначала читает старое значение элемента, умножает его на два и тут же записывает результат обратно в ту же ячейку. Это нормально: в одном операторе присваивания элемент успевает быть прочитанным и заново записанным. Главное — помнить, что справа от знака равенства вычисляется выражение, а слева указывается, куда поместить итог.
Преобразование массива по условию — частая операция при обработке данных: так очищают отрицательные показания датчиков, ограничивают слишком большие значения допустимым пределом или заменяют ошибочные данные нулями. Поэтому уверенно владеть этим приёмом важно для решения практических задач.
Кратко о главном
- Элемент массива можно как читать, так и перезаписывать.
- Меняются только те элементы, что удовлетворяют условию.
- Изменять нужно сам
A[i], а не его отдельную копию. - Счётчик внутри условия подсчитывает число выполненных замен.