Сравнение дат.
Этот модуль может быть использован для определения календарного порядка месяцев, представленных в виде сокращений в INPUT.
DP 1
PROGRAM CalendarOrder(INPUT, OUTPUT);
{Распознать, если возможно два трехсимвольных сокращения
для месяцев и вывести их в календарном порядке.}
TYPE
Month = (NoMonth, Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov, Dec);
VAR
M1, M2: Month;
{включить модуль для Month}
BEGIN {CalendarOrder}
ReadMonth(INPUT, M1);
ReadMonth(INPUT, M2);
{Сравнить M1 и M2 и вывести результаты}
END. {CalendarOrder}
После того как оба вызова процедуры ReadMonth будут выполнены M1 и M2 будут содержать значения типа Month, возможно NoMonth. Оставшийся код очевиден:
DP 1.1.
BEGIN {Сравнить M1 и M2 и вывести результаты}
IF (M1 = NoMonth) OR (M2 = NoMonth)
THEN
WRITELN(‘Входные данные записаны неверно’)
ELSE
IF M1 = M2
THEN
BEGIN
WRITE(‘Оба месяца ’);
WriteMonth(OUTPUT, M1);
WRITELN
END
ELSE
{Сравнить M1 и M2 и вывести результат}
END
DP 1.1.1.
BEGIN {Сравнить M1 и M2 и вывести результат}
WriteMonth(OUTPUT, M1);
IF (M1 < M2)
THEN
WRITE (‘ предшествует ’)
ELSE
WRITE (‘ следует за ’);
WriteMonth(M2);
WRITELN
END
Выполнение:
INPUT: APRJUL
OUTPUT: Apr предшествует Jul
INPUT: AprJul
OUTPUT: Входные данные записаны неверно
INPUT: JULAPR
OUTPUT: Jul следует за Apr
INPUT: DECDEC
OUTPUT: Оба месяца DEC