РУҚА
Задания № 6, 12 · ЕГЭ

Обращение к элементам массива

Как правильно читать и изменять элементы массива по индексам
6 мин чтенияСложность: Обновлено 29 сентября 2026

Элемент массива находят по его индексу — номеру позиции в массиве. В типовых задачах важно не перепутать индекс и значение элемента, правильно определить границы перебора и изменить именно тот элемент, который требуется условием.

Индекс и элемент массива

Массив хранит несколько однотипных значений, расположенных в определённом порядке. У каждого значения есть индекс. Индекс используют в квадратных скобках: \(a[i]\) — элемент массива \(a\) с индексом \(i\). Индекс не является самим значением: например, в массиве \(a=[7, 3, 9]\) число \(3\) — значение, а \(1\) — его индекс при нумерации с нуля.

D
Индекс массива

Индекс — целое число, однозначно указывающее позицию элемента в массиве. В Python и C++ индексы обычно начинаются с нуля, поэтому для массива из \(n\) элементов допустимы индексы от \(0\) до \(n-1\).

В школьных задачах встречаются разные соглашения. В Python и C++ первый элемент записывают как \(a[0]\). В Паскале массив часто объявляют с индексацией от \(1\), например array[1..n] of integer. Поэтому перед решением нужно посмотреть, с какого индекса начинается массив.

Позиция элементаИндекс в Python/C++Значение для a = [7, 3, 9]
первый0a[0] = 7
второй1a[1] = 3
третий2a[2] = 9
T
Границы индексов

Если массив содержит \(n\) элементов и нумерация начинается с нуля, то первый индекс равен \(0\), последний — \(n-1\). При нумерации с единицы индексы находятся в диапазоне от \(1\) до \(n\).

\[0 \le i < n \quad \text{при нумерации с нуля}\]
\[1 \le i \le n \quad \text{при нумерации с единицы}\]

Подробные правила перехода от номера позиции к индексу разобраны на странице индексация массива. Здесь достаточно помнить: позиция «первый» при нулевой нумерации соответствует индексу \(0\), а позиция «k-й» — индексу \(k-1\).

Чтение элемента по индексу

Чтение элемента означает получение его значения без изменения массива. Например, выражение a[4] возвращает шестой элемент массива в Python, если массив индексируется с нуля. Значение можно вывести, сравнить с числом, прибавить к переменной или использовать в формуле.

Python
1a = [12, 5, 8, 10]
2print(a[0])       # 12
3print(a[2] + 1)   # 9
4x = a[1]          # x получает значение 5

Если в условии сказано «вывести элемент с индексом 2», выводят a[2], а не a[1] и не порядковый номер 2. Если сказано «вывести третий элемент» при нумерации с нуля, используют a[2].

Микропроверка

Дан массив a = [4, 11, 6, 2]. Что выведет команда print(a[2])?

Частая задача — найти соседний элемент. Для элемента \(a[i]\) левый сосед имеет индекс \(i-1\), а правый — \(i+1\). Такие обращения допустимы только тогда, когда сосед существует: для первого элемента нельзя обращаться к \(a[i-1]\), а для последнего — к \(a[i+1]\).

\[\text{левый сосед: } a[i-1], \qquad \text{правый сосед: } a[i+1]\]
!
Выход за границы

Обращение к индексу, которого нет в массиве, вызывает ошибку или приводит к неверным данным. При сравнении соседей перебирайте только индексы, для которых оба соседа существуют: обычно от \(1\) до \(n-2\) при нулевой нумерации.

Изменение элемента

Чтобы заменить значение элемента, записывают новое значение по его индексу: a[i] = новое_значение. Остальные элементы массива при этом не меняются. Например, команда a[1] = 20 заменяет второй элемент массива.

Python
1a = [7, 3, 9]
2a[1] = 20
3print(a)  # [7, 20, 9]

Изменение может зависеть от старого значения. Запись a[i] = a[i] + 5 увеличивает элемент на 5, а a[i] = a[i] * 2 удваивает его. Слева от знака равенства находится место, которое изменяют, справа — выражение, вычисляемое до присваивания.

D
Присваивание элементу

Команда a[i] = выражение вычисляет выражение и записывает полученный результат в элемент массива с индексом \(i\). Старое значение этого элемента заменяется.

Если требуется изменить несколько элементов, используют цикл. Важно изменять элемент по текущему индексу цикла, а не всегда один и тот же элемент.

Python
1a = [2, 5, 8, 1]
2for i in range(len(a)):
3    a[i] = a[i] + 1
4print(a)  # [3, 6, 9, 2]

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

Разобранная задача: обмен двух элементов

Рассмотрим типовую задачу: дан массив a = [6, 2, 9, 4, 7]. Нужно поменять местами первый и последний элементы. Нельзя просто выполнить две команды подряд без дополнительной переменной: после первой команды исходное значение первого элемента будет потеряно.

№
Задача

Поменять местами элементы с индексами \(0\) и \(4\).

Показать решение Решение
1
Сначала сохраним значение первого элемента во временной переменной.
\(\displaystyle t \leftarrow a[0] = 6\)
2
На место первого элемента запишем значение последнего элемента.
\(\displaystyle a[0] \leftarrow a[4] = 7\)
3
В последний элемент запишем сохранённое исходное значение первого элемента.
\(\displaystyle a[4] \leftarrow t = 6\)
4
Получаем массив после обмена.
a = [7, 2, 9, 4, 6]
Python
1a = [6, 2, 9, 4, 7]
2t = a[0]
3a[0] = a[4]
4a[4] = t
5print(a)  # [7, 2, 9, 4, 6]

В Python обмен можно записать короче: a[0], a[4] = a[4], a[0]. Но при ручном трассировании алгоритма полезно понимать вариант с временной переменной: он показывает, какие значения читаются и куда записываются.

T
Обмен без потери данных

Для обмена значений \(a[p]\) и \(a[q]\) используют временную переменную: сначала сохраняют \(a[p]\), затем записывают \(a[q]\) в \(a[p]\), а сохранённое значение — в \(a[q]\).

\[t \leftarrow a[p], \qquad a[p] \leftarrow a[q], \qquad a[q] \leftarrow t\]

Как решать задачи на обращение к элементам

При чтении программы или составлении алгоритма действуйте последовательно: определите длину массива, подпишите индексы, найдите каждое обращение вида a[i], а после присваивания сразу обновите значение изменённого элемента. Если индексы вычисляются формулой, сначала вычислите сам индекс и только потом обращайтесь к массиву.

  1. Запишите массив и индексы под его элементами.
  2. Проверьте, с нуля или с единицы начинается нумерация.
  3. Для каждой команды отделите индекс от значения элемента.
  4. После присваивания замените старое значение новым.
  5. Проверьте, не выходит ли индекс за допустимые границы.
!
Частые ошибки

1. Считать, что a[1] — первый элемент при нулевой нумерации. 2. Перепутать запись a[i] = 5 с проверкой a[i] == 5: первая изменяет массив, вторая только сравнивает. 3. При обмене перезаписать первый элемент и потерять его исходное значение. 4. В цикле использовать a[n], хотя последний индекс равен n-1. 5. Изменить значение переменной x, полагая, что изменился элемент a[i]: это не так, если новое значение не присвоено обратно массиву.

Приём для трассировки

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

Q
Быстрый тест по теме

Быстрая проверка

~ 2 мин4 вопроса
Вопрос 1 / 4
Вопрос 1 из 4 · границы индексов
Какой индекс имеет последний элемент массива из 8 элементов при нулевой нумерации?
Главное за минуту

Главное

  • Индекс указывает позицию элемента, а значение хранится в элементе массива.
  • При нулевой нумерации массив из n элементов имеет индексы от 0 до n − 1.
  • Чтение выполняют выражением a[i], а изменение — присваиванием a[i] = новое_значение.
  • Для обращения к соседям и другим вычисляемым индексам обязательно проверяют границы массива.
  • При обмене элементов сначала сохраняют одно значение во временной переменной.