From e1c02ad25444df144b270df77f88145398be928a Mon Sep 17 00:00:00 2001 From: Bruno Raoult Date: Wed, 6 Jan 2021 18:29:30 +0100 Subject: [PATCH] removed obsolete code. cosmetic changes day16/1 bash. --- day01/ex1-22.cob | 99 ------------------------------------------------ day01/ex1-23.cob | 96 ---------------------------------------------- day16/ex1.bash | 6 +-- 3 files changed, 3 insertions(+), 198 deletions(-) delete mode 100644 day01/ex1-22.cob delete mode 100644 day01/ex1-23.cob diff --git a/day01/ex1-22.cob b/day01/ex1-22.cob deleted file mode 100644 index ff7d5f1..0000000 --- a/day01/ex1-22.cob +++ /dev/null @@ -1,99 +0,0 @@ - IDENTIFICATION DIVISION. - PROGRAM-ID. AoC-2020-day-1-part-2. -*> Inspired by https://github.com/GaloisGirl/Coding -*> Compilation: cobc -F -fmfcomment -std=rm -x ex2-cob.cob -*> Utilisation: ./ex2-cob < INPUT.txt - AUTHOR. Bruno Raoult. - - ENVIRONMENT DIVISION. - INPUT-OUTPUT SECTION. - FILE-CONTROL. - SELECT INPUTFILE ASSIGN TO KEYBOARD - ORGANIZATION IS LINE SEQUENTIAL. - - DATA DIVISION. - FILE SECTION. - FD INPUTFILE. - 01 INPUTRECORD PIC 9(4). - - WORKING-STORAGE SECTION. - 01 FILE-STATUS PIC 9 VALUE 0. - 01 LEN PIC 9(3) VALUE 0. - 01 ARRAY. - 02 ARR OCCURS 0 TO 1024 DEPENDING ON LEN. - 05 VAL PIC 9(5). - 01 S PIC 9(4). - 01 P PIC 9(12). - 01 FMT PIC Z(12)9. - - LOCAL-STORAGE SECTION. - 01 I USAGE UNSIGNED-INT VALUE 1. - 01 J USAGE UNSIGNED-INT VALUE 1. - 01 K USAGE UNSIGNED-INT VALUE 1. - 01 TMP USAGE UNSIGNED-INT VALUE 1. - - PROCEDURE DIVISION. - 01-MAIN. - OPEN INPUT INPUTFILE. - PERFORM 02-READ UNTIL FILE-STATUS = 1. - CLOSE INPUTFILE. -*> PERFORM 06-PRINT. - MOVE 1 TO K -*> PERFORM 05-BUBBLE - SORT ARR ASCENDING KEY VAL -*> DISPLAY "=========================". -*> PERFORM 06-PRINT. - PERFORM 04-LOOP - STOP RUN. - 02-READ. - READ INPUTFILE - AT END MOVE 1 TO FILE-STATUS - NOT AT END PERFORM 03-WRITE-TO-TABLE - END-READ. - - 03-WRITE-TO-TABLE. - ADD 1 TO LEN. - UNSTRING INPUTRECORD INTO VAL(LEN). -*> Wrong: "234" becomes 2340 instead of 0234 -*> COMPUTE VAL(LEN) = INPUTRECORD. -*> DISPLAY VAL(LEN) " " LEN. - 04-LOOP. - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - ADD I 1 GIVING TMP - PERFORM VARYING J FROM TMP BY 1 UNTIL J > LEN - ADD J 1 GIVING TMP - PERFORM VARYING K FROM TMP BY 1 UNTIL K > LEN - ADD VAL(I) VAL(J) VAL(K) GIVING S -*> DISPLAY I J K - IF S = 2020 THEN - MULTIPLY VAL(I) BY VAL(J) GIVING P - MULTIPLY P BY VAL(K) GIVING P - MOVE P TO FMT - DISPLAY FMT - EXIT PERFORM - ELSE - IF S > 2020 THEN - EXIT PERFORM - END-IF - END-IF - END-PERFORM - END-PERFORM - END-PERFORM. - 05-BUBBLE. - MOVE 1 TO K - PERFORM UNTIL K = 0 - MOVE 0 TO K - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - 1 - ADD 1 I GIVING J - IF VAL(I) > VAL(J) - MOVE VAL(I) TO TMP - MOVE VAL(J) TO VAL(I) - MOVE TMP TO VAL(J) - MOVE 1 TO K - END-IF - END-PERFORM - END-PERFORM. - 06-PRINT. - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - DISPLAY VAL(I) - END-PERFORM. diff --git a/day01/ex1-23.cob b/day01/ex1-23.cob deleted file mode 100644 index dee700f..0000000 --- a/day01/ex1-23.cob +++ /dev/null @@ -1,96 +0,0 @@ - IDENTIFICATION DIVISION. - PROGRAM-ID. AoC-2020-day-1-part-2. -*> Inspired by https://github.com/GaloisGirl/Coding -*> Compilation: obc -F -fmfcomment -std=rm -x ex2-cob.cob - AUTHOR. Bruno Raoult. - - ENVIRONMENT DIVISION. - INPUT-OUTPUT SECTION. - FILE-CONTROL. - SELECT INPUTFILE ASSIGN TO KEYBOARD - ORGANIZATION IS LINE SEQUENTIAL. - - DATA DIVISION. - FILE SECTION. - FD INPUTFILE. - 01 INPUTRECORD PIC 9(4). - - WORKING-STORAGE SECTION. - 01 FILE-STATUS PIC 9 VALUE 0. - 01 LEN PIC 9(3) VALUE 0. - 01 ARR. - 05 VAL PIC 9(5) OCCURS 1024. - 01 S PIC 9(4). - 01 P PIC 9(12). - 01 FMT PIC Z(12)9. - - LOCAL-STORAGE SECTION. - 01 I USAGE UNSIGNED-INT VALUE 1. - 01 J USAGE UNSIGNED-INT VALUE 1. - 01 K USAGE UNSIGNED-INT VALUE 1. - 01 TMP USAGE UNSIGNED-INT VALUE 1. - - PROCEDURE DIVISION. - 01-MAIN. - OPEN INPUT INPUTFILE. - PERFORM 02-READ UNTIL FILE-STATUS = 1. - CLOSE INPUTFILE. -*> PERFORM 06-PRINT. - MOVE 1 TO K - PERFORM 05-BUBBLE -*> DISPLAY "=========================". -*> PERFORM 06-PRINT. - PERFORM 04-LOOP. - STOP RUN. - 02-READ. - READ INPUTFILE - AT END MOVE 1 TO FILE-STATUS - NOT AT END PERFORM 03-WRITE-TO-TABLE - END-READ. - - 03-WRITE-TO-TABLE. - ADD 1 TO LEN. - MOVE INPUTRECORD TO FMT - MOVE FMT TO VAL(LEN) -*> UNSTRING INPUTRECORD INTO VAL(LEN). - DISPLAY VAL(LEN) " " LEN. - 04-LOOP. - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - ADD I 1 GIVING TMP - PERFORM VARYING J FROM TMP BY 1 UNTIL J > LEN - ADD J 1 GIVING TMP - PERFORM VARYING K FROM TMP BY 1 UNTIL K > LEN - ADD VAL(I) VAL(J) VAL(K) GIVING S -*> DISPLAY I J K - IF S = 2020 THEN - MULTIPLY VAL(I) BY VAL(J) GIVING P - MULTIPLY P BY VAL(K) GIVING P - MOVE P TO FMT - DISPLAY FMT - EXIT PERFORM - ELSE - IF S > 2020 THEN - EXIT PERFORM - END-IF - END-IF - END-PERFORM - END-PERFORM - END-PERFORM. - 05-BUBBLE. - MOVE 1 TO K - PERFORM UNTIL K = 0 - MOVE 0 TO K - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - 1 - ADD 1 I GIVING J - IF VAL(I) > VAL(J) - MOVE VAL(I) TO TMP - MOVE VAL(J) TO VAL(I) - MOVE TMP TO VAL(J) - MOVE 1 TO K - END-IF - END-PERFORM - END-PERFORM. - 06-PRINT. - PERFORM VARYING I FROM 1 BY 1 UNTIL I > LEN - DISPLAY VAL(I) - END-PERFORM. diff --git a/day16/ex1.bash b/day16/ex1.bash index 585acd9..8d1dd8a 100755 --- a/day16/ex1.bash +++ b/day16/ex1.bash @@ -1,6 +1,6 @@ #!/bin/bash # -# ex1.bash: Advent2020 game, day 15/games 1 and 2. +# ex1.bash: Advent2020 game, day 16/game 1. CMD=${0##*/} #shopt -s extglob @@ -16,11 +16,11 @@ while read -r line; do valid[$i]=1 done elif [[ $line =~ (your ticket:|nearby tickets) ]]; then - state=state+1 + ((state++)) elif [[ $line != "" ]]; then if ((state == 2)); then for i in ${line//,/ }; do - [[ ! -v valid[$i] ]] && res=res+i + [[ ! -v valid[$i] ]] && ((res++)) done fi fi