Тип-диапазон есть подмножество своего базового типа, в качестве которого
может выступать любой порядковый тип, кроме типа-диапазона.
Тип-диапазон задается границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Здесь:
      <мин. знач.> — минимальное значение типа-диапазона;
      <макс. знач.> — максимальное его значение.
Например:
  type
      digit = ' О 1 ' . . ' 9 ' ;
      dig2 =48 .. 57;
Тип-диапазон необязательно описывать в разделе ТУРЕ, а можно указывать непосредственно при объявлении переменной, например:
  var
      date : 1..31;
      month : 1..12;
      alf : '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) приведет к ошибке.
В стандартную библиотеку Турбо Паскаля включены две функции, поддерживающие работу с типами-диапазонами:
      HIGH(X) — возвращает максимальное значение типа-диапазона, к которому принадлежит переменная х;
      LOW(X) — возвращает минимальное значение типа-диапазона.
Следующая короткая программа
  var k: Integer;
  begin
      WriteLn(Low(k),'..,',High(k));
  end.
выведет на экран строку
-32768...32767
|