Порядковые типы
Тип-диапазон
Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Здесь:
- <мин.знач. > – минимальное значение типа-диапазона;
- <макс.знач.> – максимальное его значение.
Например:
type digit = '0'..'9'; dig2= 48..57;
Тип-диапазон необязательно описывать в разделе TYPE, а можно указывать непосредственно при объявлении переменной, например:
var date: 1..31; month: 1..12; Ichr: 'A'..'Z';.
При определении типа-диапазона нужно руководствоваться следующими правилами:
- два символа ".." рассматриваются как один символ, поэтому между ними недопустимы пробелы;
- левая граница диапазона не должна превышать его правую границу. Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с его меньшей мощностью. В частности, если определена переменная:
type days = (mo,tu,we,th,fr,sa,su); WeekEnd = sa. .su; var w: WeekEnd; begin ….. w: = sa; ….. end;
То ORD(W) вернет значение 5, в то время как PRED(W) приведет к ошибке.
В стандартную библиотеку Турбо Паскаля включены две функции, поддерживающие работу с типами-диапазонами:
- НIGН(Х) – возвращает максимальное значение типа-диапазона, к которому принадлежит переменная X;
- LOW(X) – возвращает минимальное значение типа-диапазона.
Следующая короткая программа выведет на экран строку:
-32768…32767 var k: Integer; begin WriteLn(Low(k),'..',High(k)) end.