Сравнение дат.

 

Этот модуль может быть использован для определения календарного порядка месяцев, представленных в виде сокращений в 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