Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
59
Task/Recamans-sequence/COBOL/recamans-sequence.cobol
Normal file
59
Task/Recamans-sequence/COBOL/recamans-sequence.cobol
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. RECAMAN.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 RECAMAN-SEQUENCE COMP.
|
||||
02 A PIC 999 OCCURS 99 TIMES INDEXED BY I.
|
||||
02 N PIC 999 VALUE 0.
|
||||
|
||||
01 VARIABLES COMP.
|
||||
02 ADDC PIC S999.
|
||||
02 SUBC PIC S999.
|
||||
02 SPTR PIC 99 VALUE 1.
|
||||
|
||||
01 OUTPUT-FORMAT.
|
||||
02 OUTI PIC Z9.
|
||||
02 OUTN PIC BZ9.
|
||||
02 OUTS PIC X(79).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
BEGIN.
|
||||
PERFORM GENERATE-NEXT-ITEM 15 TIMES.
|
||||
PERFORM COLLATE-ITEM VARYING I FROM 1 BY 1
|
||||
UNTIL I IS GREATER THAN 15.
|
||||
DISPLAY 'First 15 items:' OUTS.
|
||||
|
||||
FIND-REPEATING.
|
||||
PERFORM GENERATE-NEXT-ITEM.
|
||||
SET I TO 1.
|
||||
SEARCH A VARYING I
|
||||
WHEN I IS NOT LESS THAN N
|
||||
NEXT SENTENCE
|
||||
WHEN A(I) IS EQUAL TO A(N)
|
||||
SUBTRACT 1 FROM N GIVING OUTI
|
||||
MOVE A(N) TO OUTN
|
||||
DISPLAY 'First repeated item: A(' OUTI ') =' OUTN
|
||||
STOP RUN.
|
||||
GO TO FIND-REPEATING.
|
||||
|
||||
GENERATE-NEXT-ITEM.
|
||||
IF N IS EQUAL TO ZERO
|
||||
MOVE ZERO TO A(1)
|
||||
ELSE
|
||||
ADD N, A(N) GIVING ADDC
|
||||
SUBTRACT N FROM A(N) GIVING SUBC
|
||||
IF SUBC IS NOT GREATER THAN ZERO
|
||||
MOVE ADDC TO A(N + 1)
|
||||
ELSE
|
||||
SET I TO 1
|
||||
SEARCH A VARYING I
|
||||
WHEN I IS NOT LESS THAN N
|
||||
MOVE SUBC TO A(N + 1)
|
||||
WHEN A(I) IS EQUAL TO SUBC
|
||||
MOVE ADDC TO A(N + 1).
|
||||
ADD 1 TO N.
|
||||
|
||||
COLLATE-ITEM.
|
||||
MOVE A(I) TO OUTN.
|
||||
STRING OUTN DELIMITED BY SIZE INTO OUTS WITH POINTER SPTR.
|
||||
Loading…
Add table
Add a link
Reference in a new issue