Многомерный массив – это массив массивов. Определение многомерного массива в общем случае должно содержать сведения о типе, размерности и количествах элементов каждой размерности. Например, трехмерный массив, заданный конструкцией
kk: array [4,3,2] of INT;
представляет собой массив 4 элементов, каждый из которых – двумерный массив с размерами 3 на 2. Данный массив содержит 24 элемента типа INT, которые в приведенном ниже перечне расположены в порядке возрастания адресов (слева направо):
kk[0,0,0], kk[0,0,1], kk[0,1,0], kk[0,1,1], kk[0,2,0], kk[0,2,1], kk[1,0,0], kk[1,0,1], kk[1,1,0], kk[1,1,1], kk[1,2,0], kk[1,2,1], kk[2,0,0], kk[2,0,1], kk[2,1,0], kk[2,1,1], kk[2,2,0], kk[2,2,1], kk[3,0,0], kk[3,0,1], kk[3,1,0], kk[3,1,1], kk[3,2,0], kk[3,2,1]
Пример
В данном примере показаны различные варианты задания многомерных массивов.
PROGRAM
VAR
//двумерный массив переменных
//INT с заданием начальных значений
//(ll[0,0]=1, ll[0,1]=2, ll[0,2]=3,
// ll[1,0]=4, [1,1]=5, ll[1,2]=6):
ll: array [2,3] of INT := 1,2,3,4,5,6;
END_VAR
VAR
//двумерный массив строковых
//переменных с указанием диапазонов индексов и
//заданием начального значения первых четырех
//элементов
//(pp[5,9]=pp[5,10]=pp[5,11]="OK",
//pp[6,9]= "NO",
//pp[6,10]= …=pp[7,11]=""):
pp: array[5 .. 7, 9 .. 11] of STRING:=3("OK"), "NO";
END_VAR
//задание значений элементов массивов
ll[1,2] = 17*5;
pp[6,10] = "ERROR";
END_PROGRAM