Массивы в Delphi

delphi array

Массивы в Delphi разделяются на статические и динамические. Каждая группа разделена также на одномерные и многомерные. Про статические массивы в Delphi уже описывалось в статье про массивы в Паскаль. Так как язык программирования Паскаль является синтаксисом для Delphi, то все знания в Паскаль применимы к Delphi. Могу добавить лишь несколько моментов. Например, статический массив можно определить следующим методом:

[code]
Type = color(blue, green,yellow,black);
var Mcol : Array [color] of Integer;
[/code]

Обращаться к элементу массива в Делфи следует:

[code]
MCol[green];
[/code]

Можно придумать массу примеров на тему Массивы. Например массив:

[code]
Var : MyChar array [‘a’..’z’] of Char;
[/code]

Следующие две конструкции идентичны:

[code]
Var MyInt : array [0..9] of Integer = [1,2,3,4,5,6,7,8,9];
// и коснтрукция
Const MyInt : array [0..9] of Integer = [1,2,3,4,5,6,7,8,9];
[/code]

В символьных массивах запись выглядит так:

[code]
Var MyCh : array [0..3] of Char = [‘E’,’I’,’M’,’N’];
// и коснтрукция
Const MyCh : array [0..3] of Char = ‘EIMN’;
[/code]

Динамические массивы в Delphi

Динамические массивы в Делфи это такие массивы, в которых длина заранее не известна. Такие массивы удобно использовать в приложении, где объем информации заранее не известен.

[code]
Var MyInt : array of Integer;
[/code]

В процессе выполнения размерность задается оператором SetLength(MyInt,7);. Повторное использование SetLength в Delphi с другим значением размерности увеличивает текущий массив дополняя нулями или усекает. Можно отметить также функции, которые характеризуют минимальное значение индекса Low и максимальное High. Следует отметить, что безразмерный массив удаляется из памяти тремя способами:

[code]
MyInt := nil;
//
Finalize(MyInt);
//
SetLength (MyInt,0);
[/code]

Многомерные динамические массивы задаются так:

[code]
Var MyInt : array of array of Integer;
[/code]

Размерность задается также оператором SetLength:

[code]
SetLength(MyInt,3,3);
[/code]

Пример, который показывает формирование треугольной матрицы произвольного размера:

[code]
Var
MyInt : array of array of Integer;
N, i1 , i2, M : Integer;
Begin
N := 5;
M := 1;
SetLngth(MyInt, N);
for i1:=0 to N do
begin
SetLength(MyInt[i1], i1+1);
for i2:=0 to i1 do
begin
MyInt[i1 , i2]:=M;
Inc(M);
end;
end;
end.
[/code]

1 Star2 Stars3 Stars4 Stars5 Stars (8 голосов, средний:5,00 из 5)
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.

1 комментарий к записи “Массивы в Delphi”

  1. samsim:

    Динамические массивы иногда просто незаменимы.

Оставить комментарий