Отрезок типа представляет собой диапазон значений из поряд-
кового типа, называемого главным типом. Определение отрезка типа
включает наименьшее и наибольшее значение в поддиапазоне. Оно
имеет следующий синтаксис:
отрезок ┌───────────┐ ┌────┐ ┌───────────┐
типа ───────────>│ константа ├───>│ .. ├───>│ константа ├───>
└───────────┘ └────┘ └───────────┘
Обе константы должны иметь один и тот же порядковый тип. От-
резки типов, имеющие вид a..b, предполагают, что a меньше или
равно b.
Приведем примеры отрезков типов:
0..99
-128..127
club..heart
Переменная отрезка типа имеет все свойства переменных глав-
ного типа, однако ее значение на этапе выполнения должно принад-
лежать указанному интервалу.
Разрешение использования выражений-констант там, где стан-
дартный Паскаль допускает только простые константы, приводит к
некоторой синтаксической неоднозначности. Рассмотрим следующие
описания:
const
X = 50;
Y = 10;
type
Color = (Red, Green, Blue);
Scale = (X - Y) * 2..(X + Y) * 2;
Согласно синтаксису стандартного Паскаля, если определение
типа начинается с круглой скобки, то это перечислимый тип (такой
как Color в данном примере). Однако Scale предназначен для опре-
деления отрезка типа. Решение состоит в том, чтобы переупорядо-
чить первое выражение поддиапазона или задать другую константу,
равную значению данного выражения, и использовать эту константу в
определении типа:
type
Scale = 2 * (X - Y)..(X + Y);