Это старая версия документа!
Массивом называется выделенный блок однотипных переменных, например 1000 переменных типа INTEGER или 1000000 типа CHAR. Или даже ещё больше. Поскольку разные типы переменных занимают разное число байтов в памяти, массивы из одного количества элементов (например 1000) могут занимать разное количество байт (например SHORTCHAR займёт 1000 байт, а LONGINT — 8000). Необходимость в массивах возникает довольно часто, особенно при обработке больших массивов данных. Например, Большой адронный коллайдер (БАК) в Швейцарии (родине Никлауса Вирта) создаёт такие огромные массивы данных, что после каждого запуска БАК все ведущие университеты мира и исследовательские организации по полгода обрабатывают накопленные данные.
Массив, по сути это такая же переменная, как и например, BOOLEAN. Поэтому объявление массивов не выбивается из общих правил:
VAR d: ARRAY 1000 OF INTEGER;
Как видно из приведённого текста массив объявляется ключевым словом ARRAY, после чего через пробел указывается его размерность. После определения размерности следует ключевое слово OF с указанием типа элементов INTEGER. Точно также, как и в случае с обыкновенными переменными окончание объявление массива ограничивается точкой с запятой.
Ничто не мешает объявить два или больше массивов сразу, через одно объявление типа:
VAR d1, d2, d3, d4: ARRAY 1000 OF INTEGER;
Всё это допустимые формы объявления переменных (массив особый случай переменной, но по большому счёту — это переменная).
Многомерным массивом называется такой массив, в котором расположение элементов не только по одной линии (друг за другом), но и в более высоких размерностях. Например, массив с двумя измерениями можно уподобить фигуре на плоскости. При этом при размерности 1000х1000 он будет в общей сложности иметь 1 млн. элементов (1000^2). Такой массив называется прямоугольным или квадратным по аналогии с планиметрией. Массив с тремя измерениями будет иметь размер 1000х1000х1000 — 1 млрд. элементов (1000^3). А это уже даже для современных компьютеров довольно много. Такой массив называется объёмным или кубическим по аналогией со стереометрией. Можно создать массив с ещё более высокими размерностями и адекватно представить даже в воображении такой массив трудно, если не невозможно. Но тем не менее, аналогии можно провести с реальностью. Например структура «Города-улицы-дома-квартиры». Ниже пример объявления многомерных массивов:
VAR d1, d2: ARRAY 1000, 1000 OF INTEGER; d3, d4: ARRAY 1000, 1000, 1000 OF REAL;
В первом случае объявлены два массива типа INTEGER с двумя измерениями. Во-втором случае объявлены два массива с тремя измерениями типа REAL.
Количество измерений массивов и их размер не может быть бесконечным по нескольким причинам:
Частично, подобные проблемы можно решить через внешнюю память (например, жесткий диск или сетевое хранилище), но это требует дополнительных усилий, и скорость обработки таких массивов будет в сотни-тысячи раз меньше.
Как работать с массивами рассмотрим в следующих главах. Но уже сейчас полезно знать, что программист не оставлен «1 на 1» с огромными данными, не нужно руками описывать сотни тысяч переменных, чтобы хранить большие объемы данных. Кроме того, массивы, по сути — те же переменные, и всё что справедливо для переменных — справедливо и для массивов с дополнением буквально нескольких особенностей.