aboutsummaryrefslogtreecommitdiff
path: root/2025/day_03.cbl
diff options
context:
space:
mode:
authorTrey Bastian <hello@treybastian.com>2025-12-05 10:10:30 +0000
committerTrey Bastian <hello@treybastian.com>2025-12-05 10:10:30 +0000
commit7ff1f1c2f55aca47536e134c59162801d9324bbe (patch)
tree5814ddb03439be26dfc219b813d788350f6206bd /2025/day_03.cbl
parentb8038908764e7ff9c9f5449b0753a05f9fb1dcef (diff)
day3 2025HEADmain
Diffstat (limited to '2025/day_03.cbl')
-rw-r--r--2025/day_03.cbl63
1 files changed, 63 insertions, 0 deletions
diff --git a/2025/day_03.cbl b/2025/day_03.cbl
new file mode 100644
index 0000000..f294d1d
--- /dev/null
+++ b/2025/day_03.cbl
@@ -0,0 +1,63 @@
+ IDENTIFICATION DIVISION.
+ PROGRAM-ID. day_03.
+ AUTHOR. Trey Bastian.
+ ENVIRONMENT DIVISION.
+ INPUT-OUTPUT SECTION.
+ FILE-CONTROL.
+ SELECT input-file ASSIGN TO "./input.txt"
+ ORGANIZATION IS LINE SEQUENTIAL.
+ DATA DIVISION.
+ FILE SECTION.
+ FD input-file.
+ 01 input-line PIC Z(4096).
+ WORKING-STORAGE SECTION.
+ 01 idx PIC 9(4).
+ 01 idx-2 PIC 9(4).
+ 01 len PIC 9(4).
+
+ 01 maxim PIC 9 VALUE 0.
+ 01 digit PIC 9 VALUE 0.
+
+ 01 joltage PIC XX.
+ 01 result PIC 9(10) VALUE 0.
+
+
+ 01 eof PIC X.
+ 88 eof-y VALUE "Y".
+ 88 eof-n VALUE "N".
+
+ PROCEDURE DIVISION.
+ OPEN INPUT input-file.
+ SET eof-n to TRUE.
+ PERFORM UNTIL eof-y
+ READ input-file AT END
+ SET eof-y to TRUE
+ NOT AT END
+ MOVE FUNCTION LENGTH(FUNCTION TRIM(input-line)) TO len
+ MOVE 0 TO maxim
+ *first pass leave something on the right
+ PERFORM VARYING idx FROM 1 UNTIL idx > len - 1
+ MOVE FUNCTION NUMVAL(input-line(idx:1)) TO digit
+ IF maxim < digit
+ MOVE digit TO maxim
+ MOVE idx TO idx-2
+ END-IF
+ END-PERFORM
+ * need the next index
+ MOVE maxim TO joltage(1:1)
+ MOVE 0 TO maxim
+ ADD 1 TO idx-2
+ PERFORM VARYING idx-2 FROM idx-2 UNTIL idx-2 > len
+ MOVE FUNCTION NUMVAL(input-line(idx-2:1)) TO digit
+ IF maxim < digit
+ MOVE digit TO maxim
+ END-IF
+ END-PERFORM
+ MOVE maxim TO joltage(2:1)
+ ADD FUNCTION NUMVAL(joltage) TO result
+ END-READ
+ END-PERFORM.
+ CLOSE input-file.
+ DISPLAY result.
+ STOP-RUN.
+