іни довжини масиву, при цьому з одержима масиву зберігається.
Якщо, при виклику, довжина масиву збільшується, то додані елементи заповнюються довільними значеннями. Якщо зменшується, той вміст відкинутих елементів втрачається
Var
A: array of array of int64;
Beginlength (a; s); [1]: = 1; [???] [2]: = 2; [312] [3]: = 3; (a, 2); [31] (a; 3); [31?]
Організовується з використанням динамічної пам'яті масиву.
Оскільки динамічні масиви є динамічною структурою даних, то по закінченню роботи з ним необхідно видалити їх з пам'яті комп'ютера.
Існує три способи видалення динамічної пам'яті з системи:
). Установка довжини динамічного масиву в (0)
SetLenght (ім'я; 0);
). Присвоєння значенням довжини масиву nil:
ім'я: = nil;
). Присвоєння імені finalize (ім'я);
У OPascal для роботи з динамічними масивами передбачені вбудовані функції:
Copy (ім'я, початковий індекс, кількість елементів) - відновлення початкового імені;
High - повертає максимальне значення індексу масиву;
Low - повертає букву назви масиву.
Багатомірний динамічний масив - представляється як масив з масивів:
Var: array of array of byte (a; 4); (a [0]; 3); [???] (a [1]; 1 ); [?] (a [2], 2); [??] (a [3]; 5) ; [?????]
2). Записи:
Запис - структура даних, що складається з фіксованого числа компонентів (полів запису). На відміну від масиву, компоненти поля можуть бути різного типу, кожне поле запису іменується. p align="justify"> Опис структури запису відбувається в розділі (type). br/>
Type
Ім'я = record;
Список полів;
End;
Список полів являє собою послідовність розділів запису наступного виду:
Ім'я1: type1;
Ім'я2: type2;
Імя3: type3; = record
FIO: string;
Gr: word;
Pol: Boolean;: string [10];
Rost: real;
Ves: real;;
...: student;. FIO: Іванов Іван Іванович ;. Gr: 1987;. Pol: true ;
... A do begin: = 180.5;: = 98.2;
End;
... Доступ до кожного з компонентів запису здійснюється з використанням специфікатора. p align="justify"> Структура запису специфікатора:
специфікатор 1. [Специфікатор 2 ...] ідентифікатор. br/>
У даному випадку специфікатором буде мінлива типу (student), а ідентифікатором (pole).
... Для спрощення доступу до полів запису використовуються оператор:
With <змінна> do <оператор>
Записи з варіантними полями
Варіантна запис містить поля, призначені для різних типів даних, причому, в одному примірнику запису ніколи не використовуються всі такі поля.
Модифікуємо запис студент для зберігання інформації про місцеві студентах і приїжджих, тобто проживають про гуртожитку:
Місцеві: вулиця, будинок, квартира.
Приїжджі: номер кімнати.
Type = record;
FIO: string;
Gr: word;
Pol: Boolean;: string [10];
Rost: real;
Ves: real; mesting: Boolean of
True: (ul: string [20]; dom: string [5]; kv: word);
Fals: (N_Komn: word);;;
Частину запису, наступна після ключового слова (case) містить вариантную частина оголошення. Варіантна частина обов'язково повинна розташовуватися після оголошення всіх інших полів. p align="justify"> У пам'яті, запис зберігається лінійно. p align="justify"> Синтаксис запису:
Ім'я = record
Список полів:
Case <поле перемикач>:...