На этом шаге мы начнем знакомиться с организацией и использованием массивов.
Массивы являются еще одной структурой, без использования которой не обходится практически ни одна программа. Массив, как и переменная, имеет имя, однако, в отличие от переменной, которая может принимать одно значение, массив представляет собой совокупность определенным образом организованных значений.
Поясним сказанное на следующем примере. Пусть имеются следующие конструкции, входящие в какую-то программу:
Var
x: Integer;
Begin
x:=3;
x:=8;
End.
При обработке секции Var компьютер "выделяет" место в памяти для размещения значений указанных переменных (будем изображать эти области памяти в виде "ящичков"):
При выполнении оператора присваивания Х:=3; в этот "ящичек" помещается значение 3:
После выполнения следующего оператора присваивания Х:=8; "старое" значение заменяется новым:
Вернемся к массивам. Так вот, массивы можно рассматривать как совокупность таких ящичков:
Рис.1. Структура одномерного массива
Рис.2. Структура двумерного массива
На этих рисунках изображены два основных типа массивов: А - одномерный массив, состоящий, в нашем случае, из 5 элементов; В - двумерный массив, состоящий из 4 строк и 3 столбцов.
Прежде чем привести конструкцию, используемую для описания массивов, разберем еще один вопрос, о котором мы ничего не говорили: это размер ящичков. Напомним, что под "ящичком" мы понимаем область памяти, выделяемую для размещения значения определенного типа. Например, переменная Х имеет в нашем примере тип Integer. Для размещения в памяти значения переменной такого типа компьютер выделяет область памяти длиной 2 байта. Остальные значения приведены в таблице 2 пятого шага. Таким образом, помимо размерности массива (количества элементов строк и столбцов) нужно указывать, из каких элементов состоит массив (емкость "ящичков"). Отсюда общий вид описания массива выглядит следующим образом:
Рис.3. Общий вид описания массива
Для одномерного массива размерность определяется следующим образом:
[<номер начального элемента>.. <номер конечного элемента>].
Для двумерного массива определение размерности выглядит следующим образом:
[<начальный номер строки> .. <конечный номер строки>,
<начальный номер столбца> .. <конечный номер столбца>].
Аналогично указывается размерность трехмерного массива, четырехмерного и т.д.
Приведем примеры описания массивов А и В в предположении, что массив А состоит из целых, а массив В - из вещественных чисел:
А: Array [1..5] Of Integer;
B: Array [1..4, 1..3] Оf Real;
Таким образом, прежде чем работать с массивами, необходимо зарезервировать место в памяти под элементы массива.
Доступ к элементам массива осуществляется путем указания имени массива, за которым в квадратных скобках располагается номер элемента массива, например:
Значения, расположенные в квадратных скобках, называются индексами. В качестве индексов могут использоваться выражения, например: В[2*х-7, 3*y+1]. Однако в этом случае автор программы должен сам заботиться о том, чтобы вычисленные значения не выходили за границу массива.
На следующем шаге мы продолжим знакомство с одномерными массивами.