Опишем теперь порядковые типы данных более подробно.
ord(false)=0, ord(true)=1, false<true, pred(true)=false, succ(false)=true, inc(true)=false, inc(false)=true, dec(true)=false, dec(false)=true.
shortint byte integer word longint | 1 1 2 2 4 | 8 8 16 16 32 | -128..127 0..255 -32768..32767 0..65535 -2147483648..2147483647 | -27..27-1 0..28-1 -215..215-1 0..216-1 -231..231-1 |
type week =(sun,mon,tue,wed,thu,fri,sat) 0 1 2 3 4 5 6
Напомним, что для этого типа данных:
inc(sat) = sun, dec(sun) = sat.
type month = 1..12; budni = mon..fri;
type valid_for_identifiers = 'a'..'z','A'..'Z','_','0..9';
Этот тип состоит из объединения нескольких интервалов, причем в данном случае изменен порядок латинских букв: если в стандартном типе char 'A' < 'a', то здесь, наоборот, 'a' < 'A'. Для величин этого типа выполняются следующие равенства:
inc('z')='A'; dec('0')='_', pred('9')='8'; ord('b')= 2.