Описание массивов

Синтаксис

$ ArraySection = IdentList ":" ARRAY ["[" DemNum"]"] [OF Type] ";"

$ DemNum = Integer[.. Integer ] {"," Integer [.. Integer ] }

$ type = String | Integer | Variant | Double | Decimal | Boolean | Char | DateTime

Описание

Массив - это формальное объединение нескольких однотипных объектов, рассматриваемое как единое целое. Типом массива может быть любой из доступных системных типов.

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

Число элементов в одном измерении массива определяется значением параметра DemNum. Если при определении количества элементов в измерении массива используется одно число (без символов «..»), то длина измерения массива устанавливается от 0 до указанного значения.

Если параметр DemNum не указан, то массив считается динамическим. Если не указан тип массива, то устанавливается тип Variant.

Для обращения к элементам массива используется конструкция следующего вида:

ArrIdent[ Integer {"," Integer} ] := Value;

Пример

Создание статических массивов:

Sub Main; //Объявление начала модуля

Const // Описание констант модуля

Min = -10;

Max = 10;

Var //Описание переменных модуля

a: Array[Min..Max] Of Double; //Описание одномерного массива а с явным определением типа массива

b: Array[Min..Max, Min..Max]; //Описание двумерного массива b без явного определения типа массива

//(по умолчанию - Variant)

i: Integer;

Begin //Начало текста программы

For i := a.GetLowerBound(1) To a.GetUpperBound(1) Do

a[i] := Math.RandBetweenI(0, 100); // Поэлементное заполнение массива

Debug.WriteLine("Элемент с индексом" + i.ToString + ": " + a[i].ToString);

End For;

End Sub Main;

Создание динамических массивов:

Sub Main;

Var

DinArray: Array Of Integer; //определяется тип данных в массиве

Begin

DinArray := New Integer[10, 10]; //происходит создание массива и определяется его размерность

//набор операторов

End Sub Main;

В примере происходит создание двумерного динамического массива. Каждое измерение массива содержит по 10 целых значений. Элементы каждого измерения индексируются от 0 до 9.

Как и любой тип данных, массивы могут создаваться и храниться в переменных типа Variant. Для работы с элементами необходимо получить массив с помощью операции As с указанием типа массива.

Sub Main;

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; //Переприсвоение для изменения исходной переменной

End Sub Main;

Примечание. Если в тексте программы происходит повторное переопределение динамического массива, то все данные, которые были до пересоздания, теряются.

При присвоении массивов осуществляется копирование данных. Для корректного копирования размер и тип массивов должны совпадать.

См. также:

Тип данных Array | Класс Array | Описания и синтаксические правила