Масиви в delphi, мови програмування

Масиви в Delphi поділяються на статичні і динамічні. Кожна група розділена також на одномірні і багатовимірні. Про статичні масиви в Delphi вже описувалося в статті про масиви в Паскаль. Так як мова програмування Паскаль є синтаксисом для Delphi, то все знання в Паскаль застосовні до Delphi. Можу додати лише кілька моментів. Наприклад, статичний масив можна визначити наступним методом:
[Code]
Type = color (blue, green, yellow, black);
var Mcol. Array [color] of Integer;
[/ 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]
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]