Иллюстрированный самоучитель по Turbo Pascal

Структурированные типы. Массивы.

Любой из структурированных типов (а в Турбо Паскале их четыре: массивы, записи, множества и файлы) характеризуется множественностью образующих этот тип элементов, т.е. переменная или константа структурированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложенности типов. В Турбо Паскале допускается произвольная глубина вложенности типов, однако суммарная длина любого из них во внутреннем представлении не должна превышать – 5520 байт.

В целях совместимости со стандартным Паскалем в Турбо Паскале разрешается черед описанием структурированного типа ставить зарезервированное слово PACKED, предписывающее компилятору, по возможности, экономить память, отводимую под объекты структурированного типа; но компилятор фактически игнорирует это указание: "упаковка" данных в Турбо Паскале осуществляется автоматически везде, где это возможно.


Массивы в Турбо Паскале во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

type
digit =array[0..9] of Char;
matrix =array[Byte] of Single;
var
m: matrix;
d: digit;
i: Integer;
begin
…….
m[17]: = ord(d[i-l])/10;
…….
end.

Описание типа массива задается следующим образом:

<имя типа> = ARRAY [ <сп.инд.типов> ] OF <тип>

Здесь:

  • <имя типа> – правильный идентификатор;
  • ARRAY, OF – зарезервированные слова (массив, из);
  • <сп.тд.типов> – список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, – требование синтаксиса;
  • <тип> – любой тип Турбо Паскаля.

В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LONGINT и типов-диапазонов с базовым типом LONGINT.

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива, например:

var
а,b: array [1..10] of Real;

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как тип <тип>, идущий за словом OF, – любой тип Турбо Паскаля, то он может быть, в частности, и другим массивом, например:

type
mat = array [0..5] of array [-2..2] of array [Char] of Byte;

Такую запись можно заменить более компактной:

type
mat = array [0..5,-2..2,Char] of Byte;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.