45f9d30a

Открытые массивы


В параметр, который является открытым массивом, можно передавать как аргумент массив любой длины и размерности. Единственное ограничение: типы компонент у этих двух массивов должны совпадать.

В заголовке подпрограммы открытый параметр-массив описывается по следующему шаблону:

var <имя_параметра>: array of <тип_компонентов_массива>

Например, если описано

procedure proc6 (var a: array of byte);

то аргументом могут стать такие массивы:

a1: array[1..100] of byte; a2: array[-10..10] of byte; a3: array[1..2,1..3] of byte;

Компоненты открытого параметра-массива нумеруются начиная с нуля - этим достигается единообразие обращения к массивам переменной длины.

Если в качестве аргумента поступил многомерный массив, его компоненты "вытягиваются" в одну строку: сначала все компоненты первой строки массива, затем - второй строки и т.д. Например, если массив а3 имеет значения

1 2 3 4 5 6

то внутри процедуры proc6 параметр а будет иметь уже следующий вид:

1 2 3 4 5 6

причем компоненты двух массивов будут соотноситься так:

a[0]a[1]a[2]a[3]a[4]a[5]
a3[1,1]a3[1,2]a3[1,3]a3[2,1]a3[2,2]a3[2,3]



Содержание раздела