IDENTIFICATION DIVISION. PROGRAM-ID. TEST01D. ENVIRONMENT DIVISION. CONFIGURATION SECTION. * INPUT-OUTPUT SECTION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 W01-DIVIDES. 05 W01-DIV PIC S9(8). 05 W01-DIV1 PIC S9(8). 05 W01-DIV2 PIC S9(2). 05 W01-DIVIDE OCCURS 4 TIMES PIC S9(2)V99. PROCEDURE DIVISION. A-000. PERFORM A-100. STOP RUN. A-100. DISPLAY "* ------ divide statements tests begin ------ *". MOVE 19 TO W01-DIV W01-DIV1 W01-DIV2. MOVE 29 TO W01-DIVIDE (1) W01-DIVIDE (2) W01-DIVIDE (3) W01-DIVIDE (4). DISPLAY "* ------ test 1 begin ------ *". DISPLAY "W01-DIV =" W01-DIV " W01-DIV1 =" W01-DIV1 " W01-DIV2 =" W01-DIV2. DIVIDE 100 BY 0.35 GIVING W01-DIV ROUNDED W01-DIV1 W01-DIV2 ROUNDED ON SIZE ERROR PERFORM E-100 NOT ON SIZE ERROR PERFORM D-100 END-DIVIDE. DISPLAY "divide 100 by 0.35 giving W01-DIV=" W01-DIV " rounded W01-DIV1=" W01-DIV1 " W01-DIV2=" W01-DIV2 " rounded". DISPLAY "* ------ test 2 begin ------ *". DISPLAY "W01-DIVIDE (1)=" W01-DIVIDE (1) " W01-DIVIDE (2)=" W01-DIVIDE (2). DIVIDE 100 BY 10.4 GIVING W01-DIVIDE (1) ROUNDED W01-DIVIDE (2) NOT ON SIZE ERROR PERFORM D-100 END-DIVIDE. DISPLAY "divide 100 by 10.4 giving W01-DIVIDE (1)=" W01-DIVIDE (1) " rounded W01-DIVIDE (2)=" W01-DIVIDE (2). DISPLAY "* ------ test 3 begin ------ *". DISPLAY "W01-DIVIDE (3)=" W01-DIVIDE (3) " W01-DIVIDE (4)=" W01-DIVIDE (4). DIVIDE 142 BY 7 GIVING W01-DIVIDE (3) ROUNDED REMAINDER W01-DIVIDE (4) ON SIZE ERROR PERFORM E-100. DISPLAY "divide 142 by 7 giving W01-DIVIDE (3)=" W01-DIVIDE (3) " rounded remainder W01-DIVIDE (4)=" W01-DIVIDE (4). DISPLAY "* ------ test 4 begin ------ *". MOVE 105 TO W01-DIV. MOVE 75 TO W01-DIV1. MOVE 55 TO W01-DIV2. DISPLAY "W01-DIV =" W01-DIV " W01-DIV1 =" W01-DIV1 " W01-DIV2 =" W01-DIV2. DIVIDE 0.25 INTO W01-DIV W01-DIV1 W01-DIV2 NOT ON SIZE ERROR PERFORM D-100. DISPLAY "divide 0.25 into W01-DIV =" W01-DIV " W01-DIV1 =" W01-DIV1 " W01-DIV2 =" W01-DIV2. DISPLAY "* ------ test 5 begin ------ *". DISPLAY "W01-DIV =" W01-DIV " W01-DIV1 =" W01-DIV1 " W01-DIV2 =" W01-DIV2. DIVIDE 10.2 INTO 98 GIVING W01-DIV ROUNDED W01-DIV1 W01-DIV2 ON SIZE ERROR PERFORM E-100. DISPLAY "divide 10.2 into 98 giving W01-DIV =" W01-DIV " rounded W01-DIV1 =" W01-DIV1 " W01-DIV2 =" W01-DIV2. DISPLAY "* ------ test 6 begin ------ *". MOVE 105 TO W01-DIV. DISPLAY "W01-DIVIDE (1)=" W01-DIVIDE (1) " W01-DIV=" W01-DIV. DIVIDE 5 INTO W01-DIV GIVING W01-DIVIDE (1) ROUNDED ON SIZE ERROR PERFORM E-100. DISPLAY "divide 5 into W01-DIV =" W01-DIV " giving W01-DIVIDE (1) =" W01-DIVIDE (1) " rounded". DISPLAY "* ------ test 7 begin ------ *". MOVE 0 TO W01-DIVIDE (1). MOVE 5 TO W01-DIVIDE (2). MOVE 110 TO W01-DIV. DISPLAY "W01-DIVIDE (1)=" W01-DIVIDE (1) " W01-DIVIDE (2)=" W01-DIVIDE (2) " W01-DIV=" W01-DIV. DIVIDE 16.5 INTO W01-DIV GIVING W01-DIVIDE (1) ROUNDED REMAINDER W01-DIVIDE (2) NOT ON SIZE ERROR PERFORM D-100. DISPLAY "divide 16.5 into W01-DIV =" W01-DIV " giving W01-DIVIDE (1) =" W01-DIVIDE (1) " rounded remainder W01-DIVIDE (2)=" W01-DIVIDE (2). DISPLAY "* ------ test 8 begin ------ *". MOVE 0 TO W01-DIVIDE (3). MOVE 5 TO W01-DIVIDE (4). * MOVE 110 TO W01-DIV. MOVE 0 TO W01-DIV. SUBTRACT 110 FROM W01-DIV. DISPLAY "W01-DIVIDE (3)=" W01-DIVIDE (3) " W01-DIVIDE (4)=" W01-DIVIDE (4) " W01-DIV=" W01-DIV. DIVIDE 16.5 INTO W01-DIV GIVING W01-DIVIDE (3) REMAINDER W01-DIVIDE (4) ON SIZE ERROR PERFORM E-100. DISPLAY "divide 16.5 into W01-DIV =" W01-DIV " giving W01-DIVIDE (3) =" W01-DIVIDE (3) " remainder W01-DIVIDE (4)=" W01-DIVIDE (4). DISPLAY "* ------ divide statements tests end ------ *". D-100. DISPLAY "D-100: An divide exception erorr has NOT occured" . E-100. DISPLAY "E-100: An divide exception erorr has occured" .