Day 2: Add COBOL solution
This commit is contained in:
parent
1ce45e6d9f
commit
03f4a91463
2 changed files with 100 additions and 0 deletions
49
02/SLTN1.CBL
Normal file
49
02/SLTN1.CBL
Normal file
|
@ -0,0 +1,49 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. DAY2PT1.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT INPUT-FILE ASSIGN TO 'input.txt'
|
||||
ORGANIZATION IS LINE SEQUENTIAL
|
||||
ACCESS IS SEQUENTIAL.
|
||||
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD INPUT-FILE.
|
||||
01 INPUT-RECORD PIC A(16).
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-COMMAND.
|
||||
05 WS-CMD PIC A(16).
|
||||
05 WS-VAL PIC 9(1).
|
||||
01 WS-H PIC 9(10) USAGE IS COMP.
|
||||
01 WS-V PIC 9(10) USAGE IS COMP.
|
||||
01 WS-RESULT PIC Z(10).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
START-ROUTINE.
|
||||
OPEN INPUT INPUT-FILE.
|
||||
|
||||
READ-ROUTINE.
|
||||
MOVE SPACES TO INPUT-RECORD.
|
||||
MOVE SPACES TO WS-COMMAND.
|
||||
READ INPUT-FILE AT END GO TO END-ROUTINE.
|
||||
UNSTRING INPUT-RECORD DELIMITED BY SPACE
|
||||
INTO WS-CMD, WS-VAL.
|
||||
IF WS-CMD = 'forward' THEN
|
||||
ADD WS-VAL TO WS-H
|
||||
END-IF
|
||||
IF WS-CMD = 'down' THEN
|
||||
ADD WS-VAL TO WS-V
|
||||
END-IF
|
||||
IF WS-CMD = 'up' THEN
|
||||
SUBTRACT WS-VAL FROM WS-V
|
||||
END-IF
|
||||
GO TO READ-ROUTINE.
|
||||
|
||||
END-ROUTINE.
|
||||
CLOSE INPUT-FILE.
|
||||
MULTIPLY WS-H BY WS-V GIVING WS-RESULT.
|
||||
DISPLAY 'Answer: 'WS-RESULT.
|
||||
STOP RUN.
|
51
02/SLTN2.CBL
Normal file
51
02/SLTN2.CBL
Normal file
|
@ -0,0 +1,51 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. DAY2PT2.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
INPUT-OUTPUT SECTION.
|
||||
FILE-CONTROL.
|
||||
SELECT INPUT-FILE ASSIGN TO 'input.txt'
|
||||
ORGANIZATION IS LINE SEQUENTIAL
|
||||
ACCESS IS SEQUENTIAL.
|
||||
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
FD INPUT-FILE.
|
||||
01 INPUT-RECORD PIC A(16).
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-COMMAND.
|
||||
05 WS-CMD PIC A(16).
|
||||
05 WS-VAL PIC 9(1).
|
||||
01 WS-AIM PIC 9(10) USAGE IS COMP.
|
||||
01 WS-H PIC 9(10) USAGE IS COMP.
|
||||
01 WS-V PIC 9(10) USAGE IS COMP.
|
||||
01 WS-RESULT PIC Z(10).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
START-ROUTINE.
|
||||
OPEN INPUT INPUT-FILE.
|
||||
|
||||
READ-ROUTINE.
|
||||
MOVE SPACES TO INPUT-RECORD.
|
||||
MOVE SPACES TO WS-COMMAND.
|
||||
READ INPUT-FILE AT END GO TO END-ROUTINE.
|
||||
UNSTRING INPUT-RECORD DELIMITED BY SPACE
|
||||
INTO WS-CMD, WS-VAL.
|
||||
IF WS-CMD = 'forward' THEN
|
||||
ADD WS-VAL TO WS-H
|
||||
COMPUTE WS-V=WS-V+WS-AIM*WS-VAL
|
||||
END-IF
|
||||
IF WS-CMD = 'down' THEN
|
||||
ADD WS-VAL TO WS-AIM
|
||||
END-IF
|
||||
IF WS-CMD = 'up' THEN
|
||||
SUBTRACT WS-VAL FROM WS-AIM
|
||||
END-IF
|
||||
GO TO READ-ROUTINE.
|
||||
|
||||
END-ROUTINE.
|
||||
CLOSE INPUT-FILE.
|
||||
MULTIPLY WS-H BY WS-V GIVING WS-RESULT.
|
||||
DISPLAY 'Answer: 'WS-RESULT.
|
||||
STOP RUN.
|
Loading…
Reference in a new issue