46 lines
1.2 KiB
COBOL
46 lines
1.2 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. VAN-ECK.
|
|
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 CALCULATION.
|
|
02 ECK PIC 999 OCCURS 1000 TIMES.
|
|
02 I PIC 9999.
|
|
02 J PIC 9999.
|
|
01 OUTPUT-FORMAT.
|
|
02 ITEM PIC ZZ9.
|
|
02 IDX PIC ZZZ9.
|
|
|
|
PROCEDURE DIVISION.
|
|
B. PERFORM GENERATE-ECK.
|
|
PERFORM SHOW VARYING I FROM 1 BY 1 UNTIL I = 11.
|
|
PERFORM SHOW VARYING I FROM 991 BY 1 UNTIL I = 1001.
|
|
STOP RUN.
|
|
|
|
SHOW.
|
|
MOVE I TO IDX.
|
|
MOVE ECK(I) TO ITEM.
|
|
DISPLAY 'ECK(' IDX ') = ' ITEM.
|
|
|
|
GENERATE-ECK SECTION.
|
|
B. SET ECK(1) TO 0.
|
|
SET I TO 1.
|
|
PERFORM GENERATE-TERM
|
|
VARYING I FROM 2 BY 1 UNTIL I = 1001.
|
|
|
|
GENERATE-TERM SECTION.
|
|
B. SUBTRACT 2 FROM I GIVING J.
|
|
LOOP.
|
|
IF J IS LESS THAN 1 GO TO TERM-IS-NEW.
|
|
IF ECK(J) = ECK(I - 1) GO TO TERM-IS-OLD.
|
|
SUBTRACT 1 FROM J.
|
|
GO TO LOOP.
|
|
|
|
TERM-IS-NEW.
|
|
SET ECK(I) TO 0.
|
|
GO TO DONE.
|
|
|
|
TERM-IS-OLD.
|
|
COMPUTE ECK(I) = (I - J) - 1.
|
|
|
|
DONE. EXIT.
|