244 lines
4.9 KiB
COBOL
244 lines
4.9 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. TEST24.
|
|
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-RCODE PIC ZZZ9.
|
|
|
|
|
|
PROCEDURE DIVISION.
|
|
|
|
A-000.
|
|
|
|
DISPLAY "BEGIN: EVALUATE TESTS".
|
|
|
|
MOVE 1 TO WS-A100.
|
|
PERFORM A-100.
|
|
MOVE 8 TO WS-A100.
|
|
PERFORM A-150.
|
|
|
|
MOVE 2 TO WS-A200.
|
|
PERFORM A-200.
|
|
|
|
MOVE 2 TO WS-A200.
|
|
PERFORM A-250.
|
|
MOVE 12 TO WS-A200.
|
|
PERFORM A-250.
|
|
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.
|
|
|
|
DISPLAY "END : EVALUATE TESTS".
|
|
|
|
MOVE RETURN-CODE TO WS-RCODE.
|
|
DISPLAY "WS-RCODE=" WS-RCODE.
|
|
|
|
STOP RUN.
|
|
|
|
|
|
A-100.
|
|
|
|
DISPLAY "ENTER A-100:".
|
|
|
|
EVALUATE WS-A100
|
|
WHEN 1
|
|
DISPLAY "WS-A100 [1] = " WS-A100
|
|
PERFORM Z-900 THRU Z-910
|
|
WHEN 2
|
|
DISPLAY "WS-A100 [2] = " WS-A100
|
|
PERFORM Z-910 THRU Z-920
|
|
WHEN OTHER
|
|
DISPLAY "OTHER WS-A100=" WS-A100
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-100".
|
|
|
|
A-150.
|
|
|
|
DISPLAY "ENTER A-150:".
|
|
|
|
EVALUATE WS-A100
|
|
WHEN 1
|
|
WHEN 2
|
|
WHEN 3
|
|
WHEN 5
|
|
WHEN 7
|
|
DISPLAY "WS-A100 [1,2,3,5,7] = " WS-A100
|
|
PERFORM Z-900 THRU Z-910
|
|
WHEN 4
|
|
WHEN 6
|
|
WHEN 8
|
|
DISPLAY "WS-A100 [4,6,8] = " WS-A100
|
|
PERFORM Z-910 THRU Z-920
|
|
WHEN OTHER
|
|
DISPLAY "OTHER WS-A100 = " WS-A100
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-150".
|
|
|
|
A-200.
|
|
|
|
DISPLAY "ENTER A-200:".
|
|
|
|
EVALUATE WS-A200
|
|
WHEN 1 THRU 10
|
|
DISPLAY "WS-A200 [1-10] = " WS-A200
|
|
WHEN 11 THRU 99
|
|
DISPLAY "WS-A200 [11-99] = " WS-A200
|
|
WHEN OTHER
|
|
DISPLAY "OTHER WS-A200 = " WS-A200
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-200".
|
|
|
|
A-250.
|
|
|
|
DISPLAY "ENTER A-250:".
|
|
|
|
EVALUATE WS-A200
|
|
* WHEN 1 THRU 5
|
|
* DISPLAY "WS-A250 [1 - 5] = " WS-A200
|
|
WHEN 6 THRU 10
|
|
DISPLAY "WS-A250 [6 - 10] = " WS-A200
|
|
* DISPLAY "WS-A250 [1 - 10] = " WS-A200
|
|
WHEN 11 THRU 99
|
|
DISPLAY "WS-A250 [11 - 99] = " WS-A200
|
|
WHEN OTHER
|
|
DISPLAY "OTHER WS-A200 = " WS-A200
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-250".
|
|
|
|
A-300.
|
|
|
|
DISPLAY "ENTER A-300:".
|
|
|
|
EVALUATE WS-AGE-GROUP
|
|
WHEN WS-MINOR
|
|
DISPLAY "WS-MINOR [1 - 18] = " WS-AGE-GROUP
|
|
WHEN WS-YADULT
|
|
DISPLAY "WS-YADULT [19 - 20] = " WS-AGE-GROUP
|
|
WHEN WS-ADULT
|
|
DISPLAY "WS-ADULT [21 - 99] = " WS-AGE-GROUP
|
|
WHEN OTHER
|
|
DISPLAY "OTHER = " WS-AGE-GROUP
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-300".
|
|
|
|
|
|
A-400.
|
|
|
|
DISPLAY "ENTER A-400:".
|
|
|
|
EVALUATE WS-AGE-GROUP <= 20
|
|
WHEN TRUE
|
|
DISPLAY "MINOR [1 - 20] = " WS-AGE-GROUP
|
|
WHEN FALSE
|
|
DISPLAY "ADULT [21 - 99] = " WS-AGE-GROUP
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-400".
|
|
|
|
A-500.
|
|
|
|
DISPLAY "ENTER A-500:".
|
|
|
|
EVALUATE WS-A100 ALSO WS-A200
|
|
WHEN 1 ALSO 1 THRU 10
|
|
DISPLAY "WS-A100 [1] = " WS-A100 ", WS-A200 [1 - 10] = " WS-A200
|
|
WHEN 2 ALSO 11 THRU 99
|
|
DISPLAY "WS-A100 [2] = " WS-A100 ", WS-A200 [11 - 99] = " WS-A200
|
|
WHEN OTHER
|
|
DISPLAY "OTHER WS-A100=" WS-A100 ", WS-A200 = " WS-A200
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-500".
|
|
|
|
A-600.
|
|
|
|
DISPLAY "ENTER A-600:".
|
|
|
|
EVALUATE TRUE
|
|
WHEN DATA-ISVALID
|
|
DISPLAY "Data is valid DATA-VALIDATION [0] = " DATA-VALIDATION
|
|
WHEN DATA-NOTNUMERIC
|
|
DISPLAY "Data is not numeric DATA-VALIDATION [1] = " DATA-VALIDATION
|
|
WHEN DATA-ISOUTOFBOUNDS
|
|
DISPLAY "Data is out of bounds DATA-VALIDATION [2] = " DATA-VALIDATION
|
|
WHEN OTHER
|
|
DISPLAY "Error: Unknown data code DATA-VALIDATION [?] = " DATA-VALIDATION
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-600".
|
|
|
|
A-700.
|
|
|
|
DISPLAY "ENTER A-700:".
|
|
|
|
IF DATA-ISVALID
|
|
THEN
|
|
DISPLAY "Data is valid DATA-VALIDATION [0] = " DATA-VALIDATION
|
|
ELSE
|
|
DISPLAY "Data is not valid DATA-VALIDATION = " DATA-VALIDATION
|
|
END-IF.
|
|
|
|
DISPLAY "EXIT A-700".
|
|
|
|
|
|
DISPLAY "ENTER A-800:".
|
|
|
|
EVALUATE WS-AGE-GROUP = 19 OR 20
|
|
WHEN TRUE
|
|
DISPLAY "TRUE : YADULT [19 OR 20] = " WS-AGE-GROUP
|
|
WHEN FALSE
|
|
DISPLAY "FALSE: YADULT [19 OR 20] = " WS-AGE-GROUP
|
|
END-EVALUATE.
|
|
|
|
DISPLAY "EXIT A-800".
|
|
|
|
Z-900.
|
|
|
|
DISPLAY "ENTER Z-900".
|
|
DISPLAY "EXIT Z-900".
|
|
|
|
Z-910.
|
|
|
|
DISPLAY "ENTER Z-910".
|
|
DISPLAY "EXIT Z-910".
|
|
|
|
Z-920.
|
|
|
|
DISPLAY "ENTER Z-920".
|
|
DISPLAY "EXIT Z-920".
|