2.10. Ограниченный тип (тип "диапазон")
Ограниченный тип определяется путем наложения ограничения на значения любого упорядоченного типа, называемого базовым. Иными словами, указывается диапазон значений базового типа, например:
TYPE chi = 8..125; sm = 'd'..'k'; VAR z,a : chi; kl : sm; b : 'm'..'z'; Здесь определены два ограниченных типа: chi имеет базовый тип целый, а sm символьный.
Переменные a,z , в соответствии с описанием, могут принимать зна-чения из диапазона 8 .. 125, а переменная kl из диапазона 'd'..'k'.
Для переменной b указан диапазон непосредственно в разделе описа-ний переменных, что тоже допустимо.
Применение ограниченного типа в ряде случаев позволяет повысить наглядность программы, а также проводить контроль присваиваний во время выполнения программы.
2.11. Преобразование типов
В авторской версии языка Паскаль преобразование типов реализуется с помощью упоминавшихся уже стандартных функций
Odd,Trunc,Round,Ord,Chr .
Язык Турбо Паскаль имеет дополнительные возможности для преобразования типов. Отметим одну: явное преобразование внутри целого или вещественного типов, которое реализуется с помощью функции имени типа, к которому приводится значение преобразуемого выражения. Пусть, например, имеется описание:
VAR a : integer; b : word; c : longint .
Тогда возможны следующие преобразования:
b:= Word(2+Trunc(3.1)); c:= Longint(b); a:= Integer(c DIV 5) .
При таких преобразованиях более длинные числа усекаются до размеров коротких. Так, например, в третьем случае значение выражения типа longint усечется до двух байт размера переменной a .
Для вещественных типов не допускается преобразование к более коротким типам, т.е. с меньшим количеством байт.