10: Solve in COBOL
This commit is contained in:
parent
668630b712
commit
e1f6dec6c7
|
@ -0,0 +1,81 @@
|
||||||
|
IDENTIFICATION DIVISION.
|
||||||
|
PROGRAM-ID. AOC22D10.
|
||||||
|
|
||||||
|
ENVIRONMENT DIVISION.
|
||||||
|
INPUT-OUTPUT SECTION.
|
||||||
|
FILE-CONTROL.
|
||||||
|
SELECT INPUT-FILE ASSIGN TO 'input'
|
||||||
|
ORGANIZATION IS LINE SEQUENTIAL
|
||||||
|
ACCESS IS SEQUENTIAL.
|
||||||
|
|
||||||
|
DATA DIVISION.
|
||||||
|
FILE SECTION.
|
||||||
|
FD INPUT-FILE.
|
||||||
|
01 INPUT-RECORD PIC A(16).
|
||||||
|
|
||||||
|
WORKING-STORAGE SECTION.
|
||||||
|
01 INSTRUCTION.
|
||||||
|
05 INS PIC A(5).
|
||||||
|
05 VAL PIC S9(10).
|
||||||
|
01 CLOCK PIC 9(10) VALUE 1 USAGE IS COMP.
|
||||||
|
01 BUSY PIC 9(10) USAGE IS COMP.
|
||||||
|
01 X PIC S9(10) VALUE 1 USAGE IS COMP.
|
||||||
|
01 RESULT PIC 9(10) USAGE IS COMP.
|
||||||
|
01 RESULT-F PIC Z(10).
|
||||||
|
|
||||||
|
PROCEDURE DIVISION.
|
||||||
|
START-ROUTINE.
|
||||||
|
OPEN INPUT INPUT-FILE.
|
||||||
|
|
||||||
|
DISPLAY 'Gold:'.
|
||||||
|
DISPLAY ' ' WITH NO ADVANCING.
|
||||||
|
|
||||||
|
READ-ROUTINE.
|
||||||
|
MOVE SPACES TO INPUT-RECORD.
|
||||||
|
MOVE SPACES TO INSTRUCTION.
|
||||||
|
READ INPUT-FILE AT END GO TO END-ROUTINE.
|
||||||
|
UNSTRING INPUT-RECORD DELIMITED BY SPACE
|
||||||
|
INTO INS, VAL.
|
||||||
|
|
||||||
|
IF INS = 'addx' THEN
|
||||||
|
SET BUSY TO 2
|
||||||
|
ELSE
|
||||||
|
SET BUSY TO 1
|
||||||
|
END-IF.
|
||||||
|
PERFORM EXECUTION UNTIL BUSY = 0
|
||||||
|
|
||||||
|
IF INS = 'addx' THEN
|
||||||
|
ADD VAL TO X.
|
||||||
|
|
||||||
|
GO TO READ-ROUTINE.
|
||||||
|
|
||||||
|
EXECUTION.
|
||||||
|
IF FUNCTION REM(CLOCK - 20, 40) = 0 THEN
|
||||||
|
COMPUTE RESULT = RESULT + CLOCK * X
|
||||||
|
END-IF.
|
||||||
|
|
||||||
|
IF FUNCTION REM(CLOCK - 1, 40) IS
|
||||||
|
GREATER THAN OR EQUAL TO X - 1 AND
|
||||||
|
FUNCTION REM(CLOCK - 1, 40) IS
|
||||||
|
LESS THAN OR EQUAL TO X + 1 THEN
|
||||||
|
DISPLAY '#' WITH NO ADVANCING
|
||||||
|
ELSE
|
||||||
|
DISPLAY '.' WITH NO ADVANCING
|
||||||
|
END-IF.
|
||||||
|
|
||||||
|
IF FUNCTION REM(CLOCK, 40) EQUALS 0 THEN
|
||||||
|
DISPLAY ' '
|
||||||
|
DISPLAY ' ' WITH NO ADVANCING
|
||||||
|
END-IF.
|
||||||
|
|
||||||
|
SUBTRACT 1 FROM BUSY.
|
||||||
|
ADD 1 TO CLOCK.
|
||||||
|
|
||||||
|
END-ROUTINE.
|
||||||
|
CLOSE INPUT-FILE.
|
||||||
|
MOVE RESULT TO RESULT-F.
|
||||||
|
DISPLAY ' '.
|
||||||
|
DISPLAY 'Silver: 'RESULT-F.
|
||||||
|
STOP RUN.
|
||||||
|
|
||||||
|
END PROGRAM AOC22D10.
|
|
@ -0,0 +1,144 @@
|
||||||
|
noop
|
||||||
|
addx 33
|
||||||
|
addx -30
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 3
|
||||||
|
addx 3
|
||||||
|
addx -4
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx -38
|
||||||
|
noop
|
||||||
|
addx 16
|
||||||
|
addx -13
|
||||||
|
addx 2
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx -10
|
||||||
|
addx 17
|
||||||
|
addx -5
|
||||||
|
addx 10
|
||||||
|
noop
|
||||||
|
addx -15
|
||||||
|
addx 16
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx -38
|
||||||
|
addx 7
|
||||||
|
addx -6
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx -20
|
||||||
|
addx 21
|
||||||
|
addx 3
|
||||||
|
addx 1
|
||||||
|
addx -35
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 31
|
||||||
|
noop
|
||||||
|
addx -26
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 25
|
||||||
|
addx -18
|
||||||
|
addx -13
|
||||||
|
addx 14
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
addx 1
|
||||||
|
addx 5
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx -38
|
||||||
|
addx 24
|
||||||
|
addx -17
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 31
|
||||||
|
addx -24
|
||||||
|
addx 7
|
||||||
|
addx -10
|
||||||
|
addx 6
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx -2
|
||||||
|
addx -26
|
||||||
|
addx 31
|
||||||
|
addx 5
|
||||||
|
addx -40
|
||||||
|
addx 5
|
||||||
|
addx 33
|
||||||
|
addx -31
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx 1
|
||||||
|
addx 4
|
||||||
|
addx 20
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -14
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
Loading…
Reference in New Issue