Обробка табличних даних вимагає попереднього повідомлення про кількість елементів масиву, який буде використовуватися. А що робити. якщо кількість елементів масиву зарані не відома, оскільки залежить, наприклад, від того, скільки саме їх захоче ввести користувач?
У цьому випадку доцільним стає використання т.зв. динамічного масиву, кількість елементів якого формується не заздалегідь, а безпосередньо під час виконання програми.
Для опису динамічного масиву в розділ var записуємо таку конструкцію:
a: array of real;
Як бачимо, вона відрізняється від звичної нам форми тільки відсутністю квадратних дужок з зазначенням кількості елементів.
Далі в ході виконання програми потрібно передбачити отримання кількості елементів динамічного масиву. У разі введення даних користувачем у поле Memo, це можна зробити так:
k:= Memo1.Lines.Count;
де k - кількість елементів.
Усе, що залишилося зробити - задати кількість елементів, зазначивши, що наш новий масив a матиме довжину k
SetLength(a,k);
Після цього новий масив можна використовувати звичайним чином.
Приклад:
Заповнити масив, даними, введеними користувачем з клавіатури в багаторядкове текстове поле
var
Form1: TForm1;
a:array of real;
i,k: integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
k:=Memo1.Lines.Count;
SetLength(a,k);
for i:=1 to k do
a[i]:=StrToFloat(Memo1.Lines[i-1]) //не забудьмо, що рядки в полі Memo нумеруються з нуля
end;