Тип в программировании – это множество, для которого определен некоторый набор операций над его элементами. Сами элементы множества называются объектами (или значениями) данного типа. В языке Паскаль рассматриваются различные типы данных, которые по своей организации подразделяются на отдельные виды. Прежде всего, следует отметить, что все типы данных делятся на стандартные и нестандартные.
Стандартные: REAL, INTEGER, CHAR, BOOLEAN. Для каждого из этих типов рассматриваются соответствующие операции над его элементами. В Паскале имеются средства, позволяющие определять, исходя из имеющихся типов, новые нестандартные типы. Примерами таких нестандартных типов являются данные типа STRING и ARRAY, т.е. литерный тип и массивы. Массив – это упорядоченный набор данных одного типа, у каждого из которых есть индекс (номер). Способ индексации, тип элементов, длина массива содержатся в определении того типа, которому принадлежит массив:
TYPE T = ARRAY [1..20] OF REAL.
Это определение типа, имя которого T. Объектами типа T будут упорядоченные наборы по 20 элементов, имеющих тип REAL; диапазон изменения значения индекса – от 1 до 20. Определив с помощью TYPE тип T, можно теперь описать некоторую переменную этого типа:
VAR А : T.
Значениями переменной А будут массивы длины 20, элементы которых имеют тип REAL. Для того чтобы рассматривать эти элементы по отдельности, применяются обозначения A [1], A [2], ..., A [20].
Переменная А – переменная типа T, переменные A [1], ..., A [20] – переменные типа REAL. С ними можно обращаться как с обычными переменными типа REAL: X, Y, Z и т.д. В квадратных скобках не обязательно должно быть целое число, им может быть произвольное выражение типа INTEGER, например: A [I], A [2*I], A [2*I - 1]. Значение индекса должно лежать в указанном диапазоне от 1 до 20. Операции над объектами типа T – это доступ к отдельным элементам массивов через индексы и изменение отдельных элементов массивов с помощью операций, связанных с типом REAL.
Итак, если в Паскаль-программе определен тип с помощью конструкции ARRAY…OF, то он называется регулярным типом.
Общий вид регулярного типа
type U = array [N1..N2] of R.
Тип R называется базовым по отношению к типу U. Объекты регулярного типа называются м а с с и в а м и . Пусть R, в свою очередь, определен как регулярный тип:
type R = array [M1..M2] of S;
и пусть переменная А – переменная типа U. Тогда A [I] – переменная типа R, а А [I][J] – переменная типа S. Таким образом, получается переменная, представляющая собой двумерный массив как массив массивов.