639
должен быть определен во время компиляции, что позволяет компилятору произ
вести все вычисления, связанные с адресацией элементов массива, во время ком
пиляции, и не использовать дескрипторы во время выполнения программы. Эле
менты массива могут быть любого типа, как элементарного, так и определенного
программистом. Поэтому допустимыми являются такие конструкции, как массив
записей, массив множеств или массив файлов. Массив объявляется следующим
образом:
array [äèàïàçîí_èíäåêñîâ] of òèï_êîìïîíåíòîâ
Многомерный массив конструируется из одномерного массива, элементами ко
торого являются также одномерные массивы (то есть вектор, состоящий из векто
ров). Например, определить матрицу размером 3 × 6, состоящую из вещественных
чисел, можно при помощи следующего объявления:
array [1..3] of array [1..6] of real
Для удобства записи допускается сокращение объявления многомерного мас
сива с помощью перечисления всех диапазонов изменения индексов в одном месте:
array [1..3,1..6] of real
Эта запись позволяет также использовать более простой синтаксис индекса
ции при выборке элемента массива (например, A[3,4] вместо A[3][4]).
Строка символов в Pascal (возможно, с необязательным указанием ее упаковки
packed) представляется как массив, каждый элемент которого — это отдельный сим
вол. Поскольку диапазон изменения индексов массива уже зафиксирован во вре
мя компиляции, такое представление строк соответствует представлению строк
фиксированной длины, описанному в главе 5. Единственными допустимыми опе
рациями для символьных строк являются операции отношения (=, <, > и т. п.), при
меняемые к строкам одинаковой длины. Результат определяется в соответствии
с упорядочением символов в перечислении, реализующем тип char (см. обсуждение
ранее символьного типа данных). Допускается присваивание значения перемен
ной, представляющей символьную строку, но это значение должно быть символь
ной строкой той же длины. Символьные строки могут быть выведены в текстовые
файлы, но читаются они посимвольно в обычную переменную или массив типа
char.
Записи. Базовый тип данных çàïèñü достаточно подробно описан в разделе 6.1.6.
Множества. Pascal предоставляет ограниченную форму типа данных ìíîæåñòâî.
Объект данных этого типа состоит из множества компонентов, каждый их кото
рых принадлежит некоторому базовому типу данных, который ограничен пере
числением и поддиапазоном целых чисел, содержащим количество значений, ог
раниченное некоторым максимальным числом. Это число обычно определяется
при реализации языка и соответствует количеству бит в одном или нескольких
словах памяти компьютера, для которого предназначена данная реализация. Тог
да множество может быть реализовано в виде последовательности булевых значе
ний (единичных битов), в которой каждый бит соответствует определенному эле
менту базового множества. Если бит равен 1 (èñòèíà), то этот элемент входит
в множество, в противном случае элемент в множество не входит.
Синтаксис для объявления объекта данных типа ìíîæåñòâî следующий:
èìÿ_òèïà = set of áàçîâûé_òèï
П.8. Pascal