Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы.doc
Скачиваний:
82
Добавлен:
13.03.2016
Размер:
393.22 Кб
Скачать

Символьный тип (char)

Множеством значений этого типа являются символы, упорядочен-

ные в соответствии с расширенным набором символов кода ASCII. При

вызове функции Ord(Ch), где Ch - значение символьного типа, возв-

ращается порядковый номер Ch.

Строковая константа с длиной 1 может обозначать значение

константы символьного типа. Любое значение символьного типа может

быть получено с помощью стандартной функции Chr.

Перечислимые типы

Перечислимые типы определяют упорядоченные множества значе-

ний через перечисление идентификаторов, которые обозначают эти

значения. Упорядочение множеств выполняется в соответствии с пос-

ледовательностью, в которой перечисляются идентификаторы.

---- ---------------- ----

перечислимый -->¦ ( +--->¦ список +--->¦ ) +--->

тип L---- ¦идентификаторов¦ L----

L----------------

список --------------

идентификаторов -------->¦идентификатор+---T---->

^ L-------------- ¦

¦ ---- ¦

L------+ , ¦<------------

L----

При указании идентификатора в списке идентификаторов пере-

числимого типа он описывается как константа для блока, в котором

указано описание перечислимого типа. Типом этой константы являет-

ся описанный перечислимый тип.

Порядковый номер перечислимой константы определяется ее по-

зицией в списке идентификаторов при описании. Перечислимый тип, в

котором описывается константа, становится ее типом. Первая пере-

числимая константа в списке имеет порядковый номер 0.

Приведем пример перечислимого типа:

type

suit = (club, diamond, heart, spade);

Согласно этим описаниям diamond является константой типа

suit.

При применении функции Ord к значению перечислимого типа Ord

возвращает целое число, которое показывает, какое положение зани-

мает это значение в отношении других значений этого перечислимого

типа. Согласно предшествующим описаниям, Ord(club) возвращает 0,

Ord(diamond) возвращает 1 и так далее.

Типы массив

Массивы содержат фиксированное число элементов одного типа,

так называемого типа элемента. На приводимой ниже синтаксической

диаграмме тип элемента следует за словом of.

-------- ---- -------- ---- ----- ------

тип -->¦ array +->¦ [ +--->¦ тип +-T->¦ ] +->¦ of +->¦ тип +>

массив L-------- L---- ^ ¦индекса¦ ¦ L---- L----- L------

¦ L-------- ¦

¦ ---- ¦

L----+ , ¦<---

L----

тип -----------------

индекса --->¦ порядковый тип +--->

L-----------------

В индексных типах, по одному для каждой размерности массива,

указывается число элементов. Допустимыми индексными типами явля-

ются все порядковые типы, за исключением длинного целого и подди-

апазонов длинного целого. Массив может быть проиндексирован по

каждой размерности всеми значениями соответствующего индексного

типа; число элементов поэтому равно числу значений в каждом ин-

дексном типе. Число размерностей не ограничено.

Приведем пример типа массив:

array[1..100] of Real

Если тип элемента в типе массив также является массивом, то

результат можно рассматривать как массив массивов или как один

многомерный массив. Например,

array[boolean] of array[1..100] of array[Size] of Real

интерпретируется компилятором точно так же, как массив:

array[boolean,1..10,Size] of Real

Кроме того, можно записать выражение:

packed array[1..10] of packed array[1..8] of Boolean

как

packed array[1..10,1..8] of Boolean

Для доступа к элементам массива необходимо указать идентифи-

катор массива с одним или несколькими индексами в скобках (см.

раздел "Массивы, строки и индексы").

Тип массив, имеющий вид:

packed array[M..N] of Char

где M меньше N, называется упакованным строковым типом (слово

packed можно опустить, поскольку оно не оказывает действия в

Borland Pascal). Упакованный строковый тип имеет некоторые свойс-

тва, не характерные для других типов массив (см. раздел "Тождест-

венные и совместимые типы" далее в этой главе).

Массив вида:

array[0..X] of Char

где X - положительное целое число, называется массивом с нулевой

базой. Массивы с нулевой базой используются для хранения строк с

завершающим нулем, и, когда разрешен расширенный синтаксис (с по-

мощью директивы компилятора {$X+}), символьный массив с нулевой

базой совместим со значением типа PChar. Полностью эта тема об-

суждается в Главе 18 "Использование строк с завершающим нулем".

Параметр, описанный с помощью синтаксиса array of T, называ-

ется открытым строковым параметром. Открытые строковые параметры

позволяют передавать одной и той же процедуре или функции строко-

вые переменные изменяющегося размера.