Раздел описания типов
Программы, процедуры и функции имеют для описания типов спе- циальный раздел описания типов. Например:
type TRange = integer; TNumber = integer; TColor = (red,green,blue); TTextIndex = 1..100; TTestValue = -99..99; TTestList = array[TestIndex] of TestValue; PestList = ^TTestList;
TDate = object year: integer; month: 1..12; day: 1.. 31; procedure SetDate(D, M, Y: Integer); function ShowDate: String; end;
MeasureData = record when: Date; count: TTestIndex; data: TestListPtr; end; TMeasureList = array[1..50] of MeasureData; TName = string[80]; TSex = (male,female); TPersonDate = ^TPersonData; TPersonData = record name,firstName: TName; age: integer; married: boolean; father,child,sibling: Person; case s: Sex of male: (bearded: boolean); female: (pregnant: boolean); end; TPersonDate = array[0..SizeOf(TPersonDate)-1] of Byte; TPeople = file of TPersonData;
В этом примере Range, Number и Integer являются тождествен- ными типами. TTestIndex является просто совместимым и совместимым по присваиванию, но не тождественным, с типами Number, Range и Integer. Обратите внимание на использование в описаниях TCharVal и TPersonBuf выражений-констант.