Массив - это формальное объединение нескольких однотипных объектов, рассматриваемое как единое целое. Типом массива может быть любой из доступных системных типов. Если тип массива не указан, то устанавливается тип Variant, при этом в массиве могут храниться значения различных типов.
Определить переменную как массив можно непосредственно при описании этой переменной без предварительного описания типа массива.
Var
myArray: Array; // Массив типа Variant
Размер массива может быть задан на стадии описания переменной (статический массив) или на стадии инициализации в коде приложения (динамический массив). Массивы состоящие из одного измерения называются одномерными; массивы с двумя и более измерениями - многомерными. Если при определении количества элементов в измерении массива используется одно число (без символов «..»), то длина измерения массива устанавливается от 0 до указанного значения. Размерность массива определяется декартовым произведением элементов в каждом измерении массива.
Const // Диапазон массивов
Min = -10;
Max = 10;
Var
a: Array[Min..Max] Of Double; // Одномерный массив с явным определением типа массива
b: Array[Min..Max, Min..Max]; // Двумерный массив без явного определения типа массива (по умолчанию - Variant)
c: Array[5, 5]; //Двумерный массив с пятью элементами
в каждом измерении. Индексация элементов в диапазоне 0..4
Var
myArray: Array Of Integer; //
Определение типа данных в массиве
myArray1: Variant; // Определение переменной, в которой будет содержаться массив
Begin
//...
myArray := New Integer[10, 10]; // Создание массива и определение его размерности
myArray1 := New Double[100]; // Создание массива и определение его размерности
//...
Как и любой тип данных, массивы могут создаваться и храниться в переменных типа Variant. Для работы с элементами необходимо получить массив с помощью операции As с указанием типа массива.
Var
v: Variant;
d: Array Of Double;
Begin
v := New Double[3]; // Создание нового массива в переменной типа Variant
d := v As Array Of Double; // Доступ к элементам массива
d[0] := 1;
d[1] := 2;
d[2] := 3;
v := d; //
Переприсвоение для изменения исходной переменной
Примечание. Если в тексте программы происходит повторное переопределение динамического массива, то все данные, которые были до пересоздания, теряются.
При присвоении массивов осуществляется копирование данных. Для корректного копирования размеры и типы массивов должны совпадать.
Для обращения к элементам массива используется конструкция следующего вида myArray[<индекс> {, <индекс>}];
Var
a: Array[5] Of Integer;
b: Array Of Double;
Begin
a[0] := 100; // Присвоение значения элементу массива
b := New Double[5, 5];
b[0, 0] := Double.MinValue; // Присвоение значения элементу массива
См. также: