Динамические массивы
Переменная типа динамический массив представляет собой ссылку на ячейку памяти с которой начинается хранение элементов. Поэтому динамический массив нуждается в инициализации (выделении памяти под элементы).
Описание p array of тип элементов (одномерный массив) p array [, ] of тип элементов (двумерный массив)
Выделение памяти 1 способ var a: array of integer; b: array [, ] of real; begin a : = new integer[5]; b : = new real[4, 3]; end.
Выделение памяти 1 способ a : = new integer[3](1, 2, 3); b : = new real[4, 3] ((1, 2, 3), (4, 5, 6), (7, 8, 9), (0, 1, 2));
Выделение памяти 2 способ p Set. Length(a, 10); p Set. Length(b, 5, 3); при повторном вызове старое содержимое массива сохраняется
Пример 1 var с: array of integer; инициализация : Set. Length(с, 5); for i : = 0 to 4 do Set. Length(c[i], 3);
Пример 2 type Int. Array = array of integer; var с: array of Int. Array; . . . c : = new Int. Array[5]; for i : = 0 to Length(c)-1 do c[i] : = new integer[3];
Определение длины массива Длина массива (количество элементов в нем) возвращается стандартной функцией Length или свойством Length: l : = Length(a); l : = a. Length;
Для многомерных массивов длина по каждой размерности возвращается стандартной функцией Length с двумя параметрами или методом Get. Length(i): l : = Length(a, 0); l : = a. Get. Length(0);
Динамические массивы p. Усечение массива A: =Copy(A, 0, 20) оставить первые 20 элементов Destroy Пример: треугольная матрица строк.