Что такое динамические многомерные массивы в Паскале?
Динамические многомерные массивы в Pascal
Пример динамического многомерного массива:
type TByteMultiMassiv = array of array of Byte;
здесь объявлен тип динамический двумерный массив для элементов типа Byte.
Экземпляр массива типа TbyteMultiMassiv:
byteMassiv: TbyteMultiMassiv;
Измерения нашего массива не известны. Сначала задаём количество столбцов в массиве:
SetLength(byteMassiv, 3);
здесь указано, что массив будет содержать три столбца.
Теперь можно определить число строк в каждом столбце. Мы установим в первом столбце одну строку, во втором – две, в третьем – три:
SetLength(byteMassiv[0], 1);
SetLength(byteMassiv[1], 2);
SetLength(byteMassiv[2], 3);
SetLength(byteMassiv[1], 2);
SetLength(byteMassiv[2], 3);
Теперь можно заполнить массив числами типа Byte:
byteMassiv[0, 0] := 0; byteMassiv[0, 1] := 1; byteMassiv[0, 2] := 2;
byteMassiv[1, 1] := 3; byteMassiv[1, 2] := 4;
byteMassiv[2, 2] := 5;
byteMassiv[1, 1] := 3; byteMassiv[1, 2] := 4;
byteMassiv[2, 2] := 5;
Выводим массив:
Writeln(‘[0, 0] = ‘ + IntToStr(byteMassiv[0, 0]) + ‘; [0, 1] = ‘ + IntToStr(byteMassiv[0, 1]) + ‘; [0, 2] = ‘ + IntToStr(byteMassiv[0, 2]));
Writeln(‘[1, 1] = ‘ + IntToStr(byteMassiv[1, 1]) + ‘; [1, 2] = ‘ + IntToStr(byteMassiv[1, 2]));
Writeln(‘[2, 2] = ‘ + IntToStr(byteMassiv[2, 2]));
Writeln(‘[1, 1] = ‘ + IntToStr(byteMassiv[1, 1]) + ‘; [1, 2] = ‘ + IntToStr(byteMassiv[1, 2]));
Writeln(‘[2, 2] = ‘ + IntToStr(byteMassiv[2, 2]));
Код всей процедуры:
Получаем:
Динамические многомерные массивы в Паскале.