Одномерные динамические массивы

Динамические массивы введены в Pascal, начиная с Delphi 4. Основное отличие от статических массивов в том, что в динамических массивах заранее не объявляется количество элементов. Объявление динамического массива содержит его имя и тип элементов – один из базовых типов.

Пример: var A: array of integer;

При объявлении динамического массива место под него не отводится. При использовании такого массива, следует задать его размер процедурой SetLength.

Пример: SetLength(А,15);

Индексы массива всегда целые, начинающиеся с 0. В примере массив содержит элементы от А[0] до А[14].

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

Пример:

Programm massiv;

Var A: array of integer;

N, i: Integer;

Begin

N:=5;

SetLength (A,N); //массивА(0,0,0,0,0)

For i:=0 to N do A[i]:=i+1; //массивА(1,2,3,4,5)

N:=8;

SetLength (A,N); //массивА(1,2,3,4,5,0,0,0)

End.

Усечь массив можно при помощи функции Copy: A:=Copy(A,0,4); — произойдет усечение массива А, оставляя неизменными первые четыре элемента.

Переменная динамического массива является указателем на начало массива. Если массив еще не объявлен, то переменная равна nil. Удалить динамический массив можно несколькими способами: функция Finalize или установить нулевую длину.

Присваивание вида B:=A массивов возможно, когда var A,B:array of integer; и A>=В или A=nil.

. set length пример паскаль
. динамический массив pascal
Комментирование и размещение ссылок запрещено.