Массив - структура, состоящая из фиксированного числа компонент одного типа.
Общий вид описания массива (в разделе VAR):
здесь А - имя массива; TYPE1,TYPE2, . . . TYPEL - типы индексов; TYPEC - тип компонент (базовый тип).
Количество индексов (L) определяет размерность массива. Индексы могут быть любых скалярных типов, кроме REAL и INTEGER (не путать с SUBRANGE!). Индексы разделяются запятыми и заключаются в квадратные скобки.
Пример 1. Пусть в памяти ЭВМ расположена таблица чисел, представляющая собой двумерный массив М:
Каждое число в таблице имеет тип INTEGER это - тип компонент (TYPEO).
Первый индекс - номер строки таблицы - может в данном примере быть от 1 до 3; второй индекс - номер столбца - может меняться от 1 до 4.
Таким образом, описание этого массива выглядит так:
Задав конкретные значения индексов, можно выбрать определенную компоненту массива. Например, оператор N:=M [1, 2] зашлет в N значение, стоящее в 1-й строке, 2-м столбце, т. е. 10.
12.1.1. Упакованные массивы
Если перед названием типа стоит ключевое слово PACKED, то при трансляции генерируется программа, плотно упаковывающая данные в ячейки памяти. Такая программа экономит память, но не время счета, так как для работы с элементами такого массива, как правило, требуется предварительная распаковка.
К упакованному массиву Z можно применить стандартные процедуры PACK и UNPACK.
Пусть массив В имеет тип ARRAY [M..N] OF TYPEC, а массив Z-PACKED ARRAY [U..V] OF TYPEC, где N-M ≥ V-U; Тогда
PACK(B,I,Z) означает "упаковку" элементов, начиная с I-й компоненты массива В, в массив Z.
UNPACK(Z,B,I) означает "распаковку", массива Z в массив В, начиная с I-го элемента массива В. Строка из N символов текстовой информации есть не что иное, как упакованный массив: PACKED ARRAY [1..N] OF CHAR;