Структурированные типы служат для описания данных, которые могут содержать много значений, а не только одно, как данные простых типов. Соответственно этому, описание данных структурированных типов и работа с ними сложнее, чем с данными стандартных типов.
Структурированный тип характеризуется методами структурирования, типами своих компонентов. Он может иметь неограниченное число уровней. Слово packed (упакованный) в описании структурированного типа требует от компилятора уплотнить хранимые данные, даже за счет уменьшения скорости доступа к элементам в переменной этого типа.
К структурированным типам языка Object Pascal относят:
· тип-массив (array);
· тип-запись (record);
· тип-класс (class);
· тип-множество (set);
· файловый тип (file);
· объектный тип (object).
Тип «массив»
Массив — это структура данных, которая представляет собой однородную, фиксированную по размеру и конфигурации совокупность элементов простой или составной структуры, упорядоченных по номерам.
Массив определяется именем (идентификатором) и количеством размерностей (координат), необходимых для указания местонахождения требуемого элемента массива. Имя массива является единым для всех его элементов. Поскольку конфигурация элементов массива фиксирована, то к отдельному элементу можно обращаться с помощью одного или нескольких индексов, в зависимости от количества размерностей массива. В качестве индексов могут использоваться константы и переменные порядковых типов. Допустимыми индексными типами являются все порядковые типы, диапазон которых не превышает 2 Гбайта. Массив может иметь неограниченное число размерностей, и для каждой размерности массива указывается число элементов.
Элементами массивов могут быть как простые переменные любых типов, так и переменные составных типов (массивов, строк, записей и т.д.).
Схематично одно-, двух- и трехмерные массивы можно представить таким образом:
Одномерный массив (вектор):

Описание:
const
n=100;
var
А: array[1..n] of Real;
| const
n=100;
type
T_Vector = array[1..n] of Real;
var
A: T_Vector;
|
Двухмерный массив (матрица):

Описание:
const
m=30; n=50;
var
A: array[1..m,1..n] of Integer;
| const
m=30; n =50;
type
T_Matr=array[1..m,1..n] of Integer;
var
A: T_Matr;
|
Трехмерный массив:

Описание:
const
m=30; n=50; p=20;
var
A: array[1..m,1..n,1..p] of Real;
| const
m=30; n=50; p=20;
type
T_Array=array[1..m,1..n,1..p] of Real;
var
A: T_Array;
|
Чтобы создать упакованный массив, необходимо написать, например, так: