tinycobol/test.code/t05/test05d.cob

161 lines
4.6 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST05d.
* Program to test PERFORM VARYING, AFTER with TEST option.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
* SPECIAL-NAMES.
* DECIMAL-POINT IS COMMA.
* INPUT-OUTPUT SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 IDX PIC 9(05) VALUE 0.
01 IDX1 PIC 9(05) VALUE 0.
01 IDX2 PIC 9(05) VALUE 0.
01 IDX3 PIC 9(05) VALUE 0.
01 IDX4 PIC 9(05) VALUE 0.
01 IDX5 PIC 9(05) VALUE 0.
PROCEDURE DIVISION.
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST BEFORE".
PERFORM A-100.
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST BEFORE".
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST BEFORE - 2".
PERFORM A-125.
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST BEFORE - 2".
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST AFTER".
PERFORM A-150.
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST AFTER".
DISPLAY "BEGIN: PERFORM VARYING UNTIL/AFTER - TEST AFTER - 2".
PERFORM A-175.
DISPLAY "END : PERFORM VARYING UNTIL/AFTER - TEST AFTER - 2".
DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL/AFTER TEST AFTER".
PERFORM A-300.
DISPLAY "END : PERFORM(In-line) VARYING UNTIL/AFTER TEST AFTER".
DISPLAY "BEGIN: PERFORM(In-line) VARYING UNTIL/AFTER TEST BEFORE".
PERFORM A-400.
DISPLAY "END : PERFORM(In-line) VARYING UNTIL/AFTER TEST BEFORE".
STOP RUN.
A-100.
DISPLAY "ENTER A-100".
MOVE 1 TO IDX5.
PERFORM A-200
WITH TEST BEFORE
* VARYING IDX FROM 1 BY IDX5 UNTIL IDX > 2.
* VARYING IDX FROM 1 BY 1 UNTIL IDX > 2.
VARYING IDX FROM 1 BY 1 UNTIL IDX > 2
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
* AFTER IDX FROM 1 BY 1 UNTIL IDX > 2.
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2.
* AFTER IDX5 FROM 1 BY 1 UNTIL IDX5 > 2.
* AFTER IDX1 FROM 1 BY 1 UNTIL IDX4 > 2.
* UNTIL IDX EQUAL 1.
DISPLAY "EXIT A-100".
A-125.
DISPLAY "ENTER A-125".
MOVE 1 TO IDX IDX1 IDX2 IDX3 IDX4 IDX5.
PERFORM A-200
WITH TEST BEFORE
* VARYING IDX FROM IDX BY IDX5 UNTIL IDX > 2.
* VARYING IDX FROM IDX BY 1 UNTIL IDX > 2.
VARYING IDX FROM IDX BY 1 UNTIL IDX > 2
AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM IDX2 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM IDX3 BY 1 UNTIL IDX3 > 2
* AFTER IDX FROM IDX BY 1 UNTIL IDX > 2.
AFTER IDX4 FROM IDX4 BY 1 UNTIL IDX4 > 2.
* AFTER IDX5 FROM IDX5 BY 1 UNTIL IDX5 > 2.
* AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX4 > 2.
* UNTIL IDX EQUAL 1.
DISPLAY "EXIT A-125".
A-150.
DISPLAY "ENTER A-150".
PERFORM A-200
WITH TEST AFTER
VARYING IDX FROM 1 BY 1 UNTIL IDX > 2
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2.
* UNTIL IDX EQUAL 1.
DISPLAY "EXIT A-150".
A-175.
DISPLAY "ENTER A-175".
MOVE 1 TO IDX IDX1 IDX2 IDX3 IDX4.
PERFORM A-200
WITH TEST AFTER
VARYING IDX FROM IDX BY 1 UNTIL IDX > 2
AFTER IDX1 FROM IDX1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM IDX2 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM IDX3 BY 1 UNTIL IDX3 > 2
AFTER IDX4 FROM IDX4 BY 1 UNTIL IDX4 > 2.
* UNTIL IDX EQUAL 1.
DISPLAY "EXIT A-175".
A-200.
DISPLAY "ENTER A-200".
DISPLAY "A-200: IDX=" IDX " IDX1=" IDX1
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4.
* DISPLAY "A-200 - IDX =" IDX.
* DISPLAY "A-200 - IDX1 =" IDX1.
* DISPLAY "A-200 - IDX2 =" IDX2.
* DISPLAY "A-200 - IDX3 =" IDX3.
* DISPLAY "A-200 - IDX4 =" IDX4.
DISPLAY "EXIT A-200".
A-300.
DISPLAY "ENTER A-300".
PERFORM
WITH TEST AFTER
VARYING IDX FROM 1 BY 1
UNTIL IDX > 2
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2
* AFTER IDX FROM 1 BY 1 UNTIL IDX > 2
* UNTIL IDX EQUAL 1
DISPLAY "A-300: IDX=" IDX " IDX1=" IDX1
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4
* DISPLAY "A-300 - IDX =" IDX
* DISPLAY "A-300 - IDX1 =" IDX1
END-PERFORM.
DISPLAY "EXIT A-300".
A-400.
DISPLAY "ENTER A-400".
PERFORM
* WITH TEST BEFORE
VARYING IDX FROM 1 BY 1
UNTIL IDX > 2
AFTER IDX1 FROM 1 BY 1 UNTIL IDX1 > 2
AFTER IDX2 FROM 1 BY 1 UNTIL IDX2 > 2
AFTER IDX3 FROM 1 BY 1 UNTIL IDX3 > 2
AFTER IDX4 FROM 1 BY 1 UNTIL IDX4 > 2
* UNTIL IDX EQUAL 1
DISPLAY "A-400: IDX=" IDX " IDX1=" IDX1
" IDX2=" IDX2 " IDX3=" IDX3 " IDX4=" IDX4
* DISPLAY "A-400 - IDX =" IDX
* DISPLAY "A-400 - IDX1 =" IDX1
END-PERFORM.
DISPLAY "EXIT A-400".