Обращение к элементу массива
Большая часть пользы от массивов определяется тем фактом, что к его элементам можно обращаться индивидуально.
Способ, который позволяет это делать, заключается в использовании индекса для нумерации элементов.
Индекс - это значение, которое указывает на конкретный элемент массива
ЗАПОМНИТЕ!
НУМЕРАЦИЯ МАССИВОВ В PASCAL НАЧИНАЕТСЯ С НУЛЯ!
(Это является обязательным — вы должны начинать с нуля. Это особенно важно запомнить)
Примеры обращения к массиву A:
x := (A[3] + 5) * A[1] // прочитать значения A[3] и A[1]
A[0] := x + 6 // записать новое значение в A[0]
Разберем программу работы с элементами массива.
var i: integer;
a: array of integer;
begin
i := 1;
setlength(a, 5); //создаем массив из 5 элементов
a[0] := 23; // в каждый из 5 элементов массива (индексы от 0 до 4)
a[1] := 12; // записываем определенное значение
a[2] := 7;
a[3] := 43;
a[4] := 51;
a[2] := a[i] + 2 * a[i - 1] + a[2 * i]; // изменим значение элемента с индексом 2, на результат выражения
// т.к i=1, то подставляя значение переменной i в выражение получим
// следующее выражение a[2] := a[1] + 2*a[0] + a[2];
writeln(a[2] + a[4]);
end.
В результате выполнения данной программы на экране появится значение суммы элементов массива с индексом 2 и с индексом 4 равное 116. Как видно из примера, мы можем обращаться к любому элементу массива. А также вычислять необходимый номер элемента по различным формулам (например, как в программе A[i-1] или A[2*i], в данных случаях индексы элементов будут вычислены и зависят от значения i.)
Разберем пример программы
var a: array of integer;
begin
setlength(a, 5);
a[5] := 5;
a[-1] := 0;
end.
Т.к. массив объявлен из 5 элементов, значит элементы будут иметь нумерацию от 0 до 4. Видим, что программа в 6й строке обращается к несуществующему элементу а[5] и в 7ой строке к также несуществующему а[-1].
Получается, что программа вышла за границы массива
Выход за границы массива - это обращение к элементу с индексом, который не существует в массиве.
В таких случая программа обычно завершается аварийно с ошибкой
run-time error