version 0.73.0
This commit is contained in:
@@ -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)".
|
||||
@@ -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.
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
cond01:S:If::
|
||||
cond03:S:Evaluate::
|
||||
Reference in New Issue
Block a user