31 lines
1.1 KiB
COBOL
31 lines
1.1 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. NTH-PROGRAM.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 WS-NUMBER.
|
|
05 N PIC 9(8).
|
|
05 LAST-TWO-DIGITS PIC 99.
|
|
05 LAST-DIGIT PIC 9.
|
|
05 N-TO-OUTPUT PIC Z(7)9.
|
|
05 SUFFIX PIC AA.
|
|
PROCEDURE DIVISION.
|
|
TEST-PARAGRAPH.
|
|
PERFORM NTH-PARAGRAPH VARYING N FROM 0 BY 1 UNTIL N IS GREATER THAN 25.
|
|
PERFORM NTH-PARAGRAPH VARYING N FROM 250 BY 1 UNTIL N IS GREATER THAN 265.
|
|
PERFORM NTH-PARAGRAPH VARYING N FROM 1000 BY 1 UNTIL N IS GREATER THAN 1025.
|
|
STOP RUN.
|
|
NTH-PARAGRAPH.
|
|
MOVE 'TH' TO SUFFIX.
|
|
MOVE N (7:2) TO LAST-TWO-DIGITS.
|
|
IF LAST-TWO-DIGITS IS LESS THAN 4,
|
|
OR LAST-TWO-DIGITS IS GREATER THAN 20,
|
|
THEN PERFORM DECISION-PARAGRAPH.
|
|
MOVE N TO N-TO-OUTPUT.
|
|
DISPLAY N-TO-OUTPUT WITH NO ADVANCING.
|
|
DISPLAY SUFFIX WITH NO ADVANCING.
|
|
DISPLAY SPACE WITH NO ADVANCING.
|
|
DECISION-PARAGRAPH.
|
|
MOVE N (8:1) TO LAST-DIGIT.
|
|
IF LAST-DIGIT IS EQUAL TO 1 THEN MOVE 'ST' TO SUFFIX.
|
|
IF LAST-DIGIT IS EQUAL TO 2 THEN MOVE 'ND' TO SUFFIX.
|
|
IF LAST-DIGIT IS EQUAL TO 3 THEN MOVE 'RD' TO SUFFIX.
|