123 lines
3.9 KiB
COBOL
123 lines
3.9 KiB
COBOL
|
|
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" .
|