Cтраница 3
Каждый тип массива есть структура, состоящая из фиксированного числа компонент, которые имеют один и тот же тип, называемый типом компонент. Элементы массивов выбираются по индексам - значениям, принадлежащим к типу цел и находящимся в заданных границах. Определение типа массива задает как тип компонент, так и границы индекса. Типом компонент массива ( как, впрочем, и других структурных типов) может быть любой тип. [31]
Из-за этого возникает сложный вопрос об управлении символьными строками в языке Паскаль. Первичным механизмом хранения в памяти последовательности символов является массив. Но в стандартном Паскале ( которого мы намеренно придерживаемся) два массива являются однотипными только в том случае, если содержат элементы одинакового типа и имеют одинаковые границы индексов. [32]
Это является действительным ( без VAR) и для параметров-значений. Если нужно, то можно добавить словечко PACKED. Обобщенный тип индекса и фиксированный тип компонента следует оговорить вне процедуры; они описывают, какие массивы являются конформными к соответствующей схеме. С другой стороны, формальные границы индекса, точно так же как и сам формальный параметр ( в нашем примере лига), вводятся с помощью заголовка процедуры; так что им по возможности присваивается название, которое не встречается вне процедуры. [33]