Массивы

Массив - это формальное объединение нескольких однотипных объектов, рассматриваемое как единое целое. Типом массива может быть любой из доступных системных типов. Если тип массива не указан, то устанавливается тип 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[55]; //Двумерный массив с пятью элементами в каждом измерении. Индексация элементов в диапазоне 0..4

Var
    myArray: Array 
Of Integer; // Определение типа данных в массиве
    myArray1: Variant; // Определение переменной, в которой будет содержаться массив
Begin
    
//...
    myArray := New Integer[1010]; // Создание массива и определение его размерности
    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[
5Of Integer;
    b: Array 
Of Double;
Begin
    a[
0] := 100// Присвоение значения элементу массива
    b := New Double[55];
    b[
00] := Double.MinValue; // Присвоение значения элементу массива

См. также:

Руководство по языку Fore