Структурированные данные – массивы
В Турбо Паскале четыре типа структурированных данных: массивы, записи, множества и файлы. Переменная или константа структурированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложенности типов.

Массивовый тип – это одномерная или многомерная совокупность фиксированного числа однотипных элементов.
Массивы (регулярные типы данных) представляют собой упорядоченную последовательность переменных одного типа. Элементы массива являются его компонентами. Все компоненты относятся к одному типу, его называют типом компонент. Каждая компонента может быть явно обозначена с помощью имени переменной массива, за которым в квадратных скобках следует индекс. Индекс – это величина, характеризующая положение элемента относительно начала массива. Индексом может быть произвольное выражение порядкового типа, заключенное в квадратные скобки. Переменные b[1], b[2], …, b[40] являются элементами массива b; с[1], c[2], …, c[40] – элементы массива с. b[12] – двенадцатый элемент массива b, c[39] – тридцать девятый элемент массива с. Если массив состоит только из 40 элементов, то нельзя использовать переменную b[41], так как такой переменной нет в массиве. В качестве индекса может использоваться выражение, например: a [ i + 2 ], b [2 * ( i + 1) + 1].
Каждому массиву, используемому в программе, выделяется место в памяти. Но в отличие от простых переменных массиву отводится не одна ячейка, а последовательность расположенных друг за другом ячеек, в каждую из которых записывается значение соответствующего элемента.
Массивы, как и простые переменные, подлежат описанию в разделе переменных. Например,
var
a : array [1 .. 40] of real;
b,c : array [1 .. n] of real;
d : array [5 .. 20] of integer;
p : real;
В приведенном примере описаны четыре массива: a, b, c, d и простая переменная р. Ключевое слово array означает, что описываемый объект является массивом. В описании массива содержатся следующие сведения: 1) сведения о типе элементов массива (элементы массивов a, b, c – вещественные, массива d – целые); 2) диапазон изменения индексов, определяемый граничной парой, например: 1.. 40, 1 .. n, 5 .. 20. Нижняя граница отделяется от верхней двумя точками. Нижняя граница показывает наименьшее возможное значение индекса, верхняя – наибольшее. Очевидно, что нижняя граница не может превосходить верхнюю.
Пример. Программа чтения элементов массива и вывода элементов этого массва, помноженных на число ?.
program pri;
const n = 1; m = 10;
var
i : integer;
k : array [n .. m] of integer;
begin
for i:= n to m do read (k[i]);
for i:= n to m do write (k[i] * pi)
end.
Массивовый тип является типом, определяемым пользователем, его можно определить в разделе описания типов:
type
ar = array [n .. m] of integer.
Тогда в разделе переменных необходимо указать
k : ar.
Синтаксис описания типа массива:
<имя типа> = array [<сп. инд. типов>] of <тип>
Здесь <имя типа> – правильный идентификатор; array, of – зарезервированные слова (массив, из); <сп. инд. типов> – список из одного или нескольких индексных (порядковых) типов, разделенных запятыми; квадратные скобки, обрамляющие список, – требование синтаксиса; <тип> – любой тип Турбо Паскаля.
В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме longint.