Created
December 8, 2017 18:20
-
-
Save NoUsername/eb56f8d81a2230e8fb51f708b701075c to your computer and use it in GitHub Desktop.
Cobol solution for advent of code 2017 day 1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IDENTIFICATION DIVISION. | |
PROGRAM-ID. advofcode01. | |
AUTHOR Paul Klingelhuber | |
ENVIRONMENT DIVISION. | |
INPUT-OUTPUT SECTION. | |
FILE-CONTROL. | |
SELECT InpFile ASSIGN TO "ADVOFCODE01.DAT" | |
ORGANIZATION IS LINE SEQUENTIAL. | |
DATA DIVISION. | |
FILE SECTION. | |
FD InpFile. | |
01 FileFormat. | |
88 EndOfInpFile VALUE HIGH-VALUES. | |
02 SomeNumber PIC 9(1). | |
WORKING-STORAGE SECTION. | |
01 PrevValue PIC 9 VALUE ZEROS. | |
01 FirstValue PIC 9 VALUE ZEROS. | |
01 Result PIC 9(6) VALUE ZEROS. | |
PROCEDURE DIVISION. | |
Begin. | |
OPEN INPUT InpFile | |
READ InpFile | |
AT END SET EndOfInpFile TO TRUE | |
END-READ | |
SET FirstValue TO SomeNumber | |
SET PrevValue TO SomeNumber | |
SET Result TO 0 | |
READ InpFile | |
AT END SET EndOfInpFile TO TRUE | |
END-READ | |
PERFORM UNTIL EndOfInpFile | |
*> DISPLAY "Checking " SPACE PrevValue SPACE SomeNumber | |
IF PrevValue IS = SomeNumber THEN | |
COMPUTE Result = Result + SomeNumber | |
END-IF | |
*> DISPLAY "CurrSum " SPACE Result | |
SET PrevValue TO SomeNumber | |
READ InpFile | |
AT END SET EndOfInpFile TO TRUE | |
END-READ | |
END-PERFORM | |
CLOSE InpFile | |
*> DISPLAY "Checking " SPACE PrevValue SPACE FirstValue SPACE "(first/last)" | |
IF PrevValue IS = FirstValue THEN | |
COMPUTE Result = Result + PrevValue | |
END-IF | |
DISPLAY "Final Result: " SPACE Result | |
STOP RUN. | |
*> compile with: cobc -x -free advofcode01.cob | |
*> put input data in a file "ADVOFCODE01.DAT", 1 number per line |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment