version 0.73.0

This commit is contained in:
2023-07-14 12:15:30 -03:00
parent 110d8a0419
commit 945dd1a809
1466 changed files with 374820 additions and 0 deletions
+190
View File
@@ -0,0 +1,190 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. COND01.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 WS-IDX PIC 9(3).
01 WS-IDX1 PIC 9(3).
01 WS-IDX2 PIC 9(3).
01 IDX PIC 9(3).
01 IDX2 PIC 9(3) COMP.
01 WS-AGE-GROUP PIC 9(2).
88 WS-MINOR VALUE 1 THRU 18.
88 WS-YADULT VALUE 19, 20, 21, 22.
88 WS-ADULT VALUE 21 THRU 99.
01 WS-DEPT-GROUP1 PIC X.
88 WS-ACCOUNTING1 VALUE 'A', 'B', 'C'.
88 WS-OTHER1 VALUE 'D' THRU 'Z'.
01 WS-DEPT-GROUP PIC 9.
88 WS-ACCOUNTING VALUE 2, 3.
88 WS-OTHER VALUE 4 THRU 9.
01 WS-STATUS PIC X(1).
88 WS-DIVORCED VALUE 'D'.
88 WS-MARRIED VALUE 'M'.
88 WS-SINGLE VALUE 'S'.
01 WS-FULL-NAME PIC X(20).
01 WS-NUMBER pic X(10).
01 WS-IF-TRACE PIC 9.
PROCEDURE DIVISION.
A-000.
DISPLAY "BEGIN: IF/ELSE TESTS".
MOVE 1 TO IDX.
MOVE 99 TO WS-IDX.
MOVE 1 TO WS-IDX1.
MOVE 2 TO WS-IDX2.
MOVE 'M' TO WS-STATUS.
MOVE 21 TO WS-AGE-GROUP.
MOVE 'DAVID ESSEX' TO WS-FULL-NAME.
MOVE "1234" TO WS-NUMBER.
MOVE 2 TO WS-DEPT-GROUP.
MOVE 'A' TO WS-DEPT-GROUP1.
PERFORM A-100.
PERFORM A-200.
PERFORM A-300.
PERFORM A-400.
PERFORM A-500.
PERFORM A-600.
PERFORM A-650.
PERFORM A-700.
PERFORM A-750.
PERFORM A-800.
PERFORM A-900.
PERFORM A-1000.
PERFORM A-1100.
PERFORM A-1200.
STOP RUN.
A-100.
IF ( WS-IDX1 EQUAL 1 ) AND ( WS-IDX2 EQUAL 2 )
THEN
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE
END-IF.
DISPLAY "IF01:(" WS-IF-TRACE "):(1):(And)".
A-200.
IF WS-IDX1 EQUAL 3
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE
END-IF.
DISPLAY "IF02:(" WS-IF-TRACE "):(2):(Simple)".
A-300.
IF WS-IDX EQUAL 99
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF03:(" WS-IF-TRACE "):(1):(Simple 2 pos)".
A-400.
IF WS-IDX NOT EQUAL 99
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE
END-IF.
DISPLAY "IF04:(" WS-IF-TRACE "):(2):(Simple ne)".
A-500.
IF WS-MARRIED
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF05:(" WS-IF-TRACE "):(1):(Simple condition)".
A-600.
IF WS-ADULT
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF06:(" WS-IF-TRACE "):(1):(Simple condition)".
A-650.
IF WS-YADULT
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF07:(" WS-IF-TRACE "):(1):(Simple condition)".
A-700.
IF WS-FULL-NAME NUMERIC
MOVE 1 TO WS-IF-TRACE
IF WS-FULL-NAME ALPHABETIC
MOVE 2 TO WS-IF-TRACE
ELSE
MOVE 3 TO WS-IF-TRACE.
DISPLAY "IF08:(" WS-IF-TRACE "):(1):(Simple class alpha)".
A-750.
IF WS-NUMBER NUMERIC
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF09:(" WS-IF-TRACE "):(1):(Simple class num)".
A-800.
IF WS-IDX POSITIVE
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF10:(" WS-IF-TRACE "):(1):(Simple class signed)".
A-900.
MOVE WS-IDX1 TO WS-IDX2.
ADD 50 TO WS-IDX2.
IF WS-IDX = WS-IDX1 + 50
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF11:(" WS-IF-TRACE "):(2):(Arith expression)".
A-1000.
IF WS-ACCOUNTING
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF12:(" WS-IF-TRACE "):(1):(Simple)".
A-1100.
IF WS-ACCOUNTING1
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE.
DISPLAY "IF13:(" WS-IF-TRACE "):(1):(Simple)".
A-1200.
IF WS-IDX > WS-IDX1 OR > IDX
THEN
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE
END-IF
DISPLAY "IF14:(" WS-IF-TRACE "):(1):(Combined OR)".
A-1300.
MOVE ZEROS TO WS-NUMBER
IF WS-NUMBER IS ZEROS
THEN
MOVE 1 TO WS-IF-TRACE
ELSE
MOVE 2 TO WS-IF-TRACE
END-IF
DISPLAY "IF15:(" WS-IF-TRACE "):(1):(all zeros)".
+187
View File
@@ -0,0 +1,187 @@
IDENTIFICATION DIVISION.
PROGRAM-ID. COND03.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
* INPUT-OUTPUT SECTION.
* FILE-CONTROL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 WS-A100 PIC 9(3).
01 WS-A200 PIC 9(3).
01 WS-AGE-GROUP PIC 9(2).
88 WS-MINOR VALUE 1 THRU 18.
88 WS-YADULT VALUE 19, 20.
88 WS-ADULT VALUE 21 THRU 99.
01 DATA-VALIDATION PIC 9.
88 DATA-ISVALID VALUE 0.
88 DATA-NOTNUMERIC VALUE 1.
88 DATA-ISOUTOFBOUNDS VALUE 2.
01 WS-TOT-TRACE.
05 WS-EV-TRACE PIC 9(2).
05 WS-Z-TRACE PIC 9.
01 WS-EXPECTED PIC 9(3).
PROCEDURE DIVISION.
A-000.
MOVE 1 TO WS-A100.
PERFORM A-100.
MOVE 8 TO WS-A100.
PERFORM A-150.
MOVE 0 TO WS-Z-TRACE.
MOVE 2 TO WS-A200.
PERFORM A-200.
MOVE 10 TO WS-EV-TRACE.
MOVE 140 TO WS-EXPECTED.
MOVE 2 TO WS-A200.
PERFORM A-250.
MOVE 20 TO WS-EV-TRACE.
MOVE 220 TO WS-EXPECTED.
MOVE 12 TO WS-A200.
PERFORM A-250.
MOVE 30 TO WS-EV-TRACE.
MOVE 340 TO WS-EXPECTED.
MOVE 166 TO WS-A200.
PERFORM A-250.
MOVE 19 TO WS-AGE-GROUP.
PERFORM A-300.
PERFORM A-400.
PERFORM A-500.
MOVE 0 TO DATA-VALIDATION.
PERFORM A-600.
MOVE 0 TO DATA-VALIDATION.
PERFORM A-700.
STOP RUN.
A-100.
MOVE 0 TO WS-Z-TRACE.
EVALUATE WS-A100
WHEN 1
MOVE 1 TO WS-EV-TRACE
PERFORM Z-900 THRU Z-910
WHEN 2
MOVE 2 TO WS-EV-TRACE
PERFORM Z-910 THRU Z-920
WHEN OTHER
MOVE 3 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV01:(" WS-TOT-TRACE "):(013):(Simple)".
A-150.
MOVE 0 TO WS-Z-TRACE.
EVALUATE WS-A100
WHEN 1
WHEN 2
WHEN 3
WHEN 5
WHEN 7
MOVE 1 TO WS-EV-TRACE
PERFORM Z-900 THRU Z-910
WHEN 4
WHEN 6
WHEN 8
MOVE 2 TO WS-EV-TRACE
PERFORM Z-910 THRU Z-920
WHEN OTHER
MOVE 3 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV02:(" WS-TOT-TRACE "):(026):(Multiple WHEN)".
A-200.
EVALUATE WS-A200
WHEN 1 THRU 10
MOVE 1 TO WS-EV-TRACE
WHEN 11 THRU 99
MOVE 2 TO WS-EV-TRACE
WHEN OTHER
MOVE 3 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV03:(" WS-TOT-TRACE "):(010):(THRU conditions)".
A-250.
EVALUATE WS-A200
WHEN 6 THRU 10
ADD 1 TO WS-EV-TRACE
WHEN 11 THRU 99
ADD 2 TO WS-EV-TRACE
WHEN OTHER
ADD 4 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV04:(" WS-TOT-TRACE "):(" WS-EXPECTED
"):(THRU conditions, OTHER branch)".
A-300.
EVALUATE WS-AGE-GROUP
WHEN WS-MINOR
MOVE 1 TO WS-EV-TRACE
WHEN WS-YADULT
MOVE 2 TO WS-EV-TRACE
WHEN WS-ADULT
MOVE 3 TO WS-EV-TRACE
WHEN OTHER
MOVE 4 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV05:(" WS-TOT-TRACE "):(020):(88 conditions)".
A-400.
EVALUATE WS-AGE-GROUP <= 20
WHEN TRUE
MOVE 1 TO WS-EV-TRACE
WHEN FALSE
MOVE 2 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV06:(" WS-TOT-TRACE "):(010):(88 conditions)".
A-500.
EVALUATE WS-A100 ALSO WS-A200
WHEN 1 ALSO 1 THRU 10
MOVE 1 TO WS-EV-TRACE
WHEN 2 ALSO 11 THRU 99
MOVE 2 TO WS-EV-TRACE
WHEN OTHER
MOVE 3 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV07:(" WS-TOT-TRACE "):(030):(ALSO conditions)".
A-600.
EVALUATE TRUE
WHEN DATA-ISVALID
MOVE 1 TO WS-EV-TRACE
WHEN DATA-NOTNUMERIC
MOVE 2 TO WS-EV-TRACE
WHEN DATA-ISOUTOFBOUNDS
MOVE 3 TO WS-EV-TRACE
WHEN OTHER
MOVE 4 TO WS-EV-TRACE
END-EVALUATE.
DISPLAY "EV08:(" WS-TOT-TRACE "):(010):(Simple 88)".
A-700.
IF DATA-ISVALID
THEN
MOVE 1 TO WS-EV-TRACE
ELSE
MOVE 2 TO WS-EV-TRACE
END-IF.
DISPLAY "EV09:(" WS-TOT-TRACE "):(010):(IF 88 condition)".
Z-900.
ADD 1 TO WS-Z-TRACE.
Z-910.
ADD 2 TO WS-Z-TRACE.
Z-920.
ADD 4 TO WS-Z-TRACE.
+2
View File
@@ -0,0 +1,2 @@
cond01:S:If::
cond03:S:Evaluate::