51 lines
1.3 KiB
COBOL
51 lines
1.3 KiB
COBOL
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.
|