115 lines
4.5 KiB
COBOL
115 lines
4.5 KiB
COBOL
|
|
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. TEST01S.
|
|
ENVIRONMENT DIVISION.
|
|
CONFIGURATION SECTION.
|
|
* INPUT-OUTPUT SECTION.
|
|
DATA DIVISION.
|
|
FILE SECTION.
|
|
|
|
WORKING-STORAGE SECTION.
|
|
|
|
01 W01-SUBTRACT.
|
|
05 W01-SUB PIC S9(6).
|
|
05 W01-SUB1 PIC 9(6).
|
|
05 W01-SUB2 PIC S9(2)V9.
|
|
05 W01-SUB3 PIC 9(6).
|
|
05 W01-SUBT OCCURS 2 TIMES PIC S9(6).
|
|
05 W01-SUB7 PIC S9(4)V9.
|
|
05 W01-SUB8 PIC S9(4)V9(2).
|
|
05 W01-SUB9 PIC S9(4)V9(3).
|
|
05 W01-SUB0 PIC S9(4)V9(4).
|
|
|
|
PROCEDURE DIVISION.
|
|
|
|
A-000.
|
|
PERFORM A-100.
|
|
STOP RUN.
|
|
|
|
A-100.
|
|
|
|
DISPLAY "* ------ subtract statements tests begin ------ *".
|
|
|
|
DISPLAY "* ------ test 1 begin ------ *".
|
|
MOVE 100 TO W01-SUB.
|
|
MOVE 200 TO W01-SUB1.
|
|
MOVE -88 TO W01-SUB2.
|
|
DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2.
|
|
SUBTRACT 11 22 33.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 ROUNDED
|
|
* SUBTRACT 11 22 -133.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
ON SIZE ERROR PERFORM E-100
|
|
NOT ON SIZE ERROR PERFORM D-100.
|
|
DISPLAY "subtract 11 22 133.5 (166.5) FROM W01-SUB = " W01-SUB
|
|
" rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
* SUBTRACT 11 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
* ON SIZE ERROR PERFORM E-100.
|
|
* DISPLAY "subtract 11 FROM W01-SUB = " W01-SUB
|
|
* " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
* SUBTRACT 22 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
* ON SIZE ERROR PERFORM E-100.
|
|
* DISPLAY "subtract 22 FROM W01-SUB = " W01-SUB
|
|
* " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
* SUBTRACT 133.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
* ON SIZE ERROR PERFORM E-100.
|
|
* DISPLAY "subtract 133.5 FROM W01-SUB = " W01-SUB
|
|
* " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
* SUBTRACT -233.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
* ON SIZE ERROR PERFORM E-100.
|
|
* DISPLAY "subtract -233.5 FROM W01-SUB = " W01-SUB
|
|
* " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
* SUBTRACT 11 22 33.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2
|
|
* ON SIZE ERROR PERFORM E-100.
|
|
* DISPLAY "subtract 11 22 33.5 (66.5) FROM W01-SUB = " W01-SUB
|
|
* " rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2.
|
|
|
|
DISPLAY "* ------ test 2 begin ------ *".
|
|
MOVE -98 TO W01-SUB.
|
|
MOVE 0 TO W01-SUB1 W01-SUB2 W01-SUB3.
|
|
DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3.
|
|
SUBTRACT 1 2 3.5 FROM W01-SUB GIVING W01-SUB1 ROUNDED W01-SUB2 W01-SUB3
|
|
NOT ON SIZE ERROR PERFORM D-100.
|
|
DISPLAY "subtract 1 2 3.5 (6.5) FROM W01-SUB = " W01-SUB
|
|
" giving W01-SUB1 =" W01-SUB1 " rounded W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3.
|
|
|
|
DISPLAY "* ------ test 3 begin ------ *".
|
|
MOVE -98 TO W01-SUB W01-SUB1 W01-SUB2 W01-SUB3.
|
|
DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3.
|
|
SUBTRACT 233.5 FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 W01-SUB3 ROUNDED
|
|
ON SIZE ERROR PERFORM E-100.
|
|
DISPLAY "subtract 233.5 FROM W01-SUB = " W01-SUB
|
|
" giving W01-SUB1 =" W01-SUB1 " rounded W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3.
|
|
|
|
DISPLAY "* ------ test 4 begin ------ *".
|
|
MOVE -98 TO W01-SUB W01-SUB1 W01-SUB2 W01-SUB3.
|
|
MOVE -233.5 TO W01-SUBT (1) W01-SUBT (2).
|
|
DISPLAY "W01-SUB = " W01-SUB " W01-SUB1 = " W01-SUB1 " W01-SUB2 = " W01-SUB2 " W01-SUB3 = " W01-SUB3.
|
|
DISPLAY "W01-SUBT (1) = " W01-SUBT (1) " W01-SUBT (2) = " W01-SUBT (2).
|
|
SUBTRACT W01-SUBT (1) FROM W01-SUB ROUNDED W01-SUB1 W01-SUB2 W01-SUB3 ROUNDED
|
|
ON SIZE ERROR PERFORM E-100.
|
|
DISPLAY "subtract W01-SUBT (1) = " W01-SUBT (1) " FROM W01-SUB = " W01-SUB
|
|
" rounded W01-SUB1 =" W01-SUB1 " W01-SUB2 =" W01-SUB2 " W01-SUB3 =" W01-SUB3 " rounded".
|
|
|
|
DISPLAY "* ------ test 6 begin ------ *".
|
|
SUBTRACT 11.69 FROM -28.36 GIVING W01-SUB7 W01-SUB8 W01-SUB9 W01-SUB0
|
|
END-SUBTRACT.
|
|
DISPLAY "subtract 11.69 from -28.36 giving W01-SUB7 = " W01-SUB7
|
|
" W01-SUB8 =" W01-SUB8
|
|
" W01-SUB9 =" W01-SUB9
|
|
" W01-SUB0 =" W01-SUB0.
|
|
|
|
DISPLAY "* ------ test 7 begin ------ *".
|
|
SUBTRACT 11.69 FROM -28.36 GIVING W01-SUB7 ROUNDED W01-SUB8 ROUNDED W01-SUB9 ROUNDED W01-SUB0 ROUNDED
|
|
END-SUBTRACT.
|
|
DISPLAY "subtract 11.69 from -28.36 giving W01-SUB7 = " W01-SUB7 " rounded"
|
|
" W01-SUB8 =" W01-SUB8 " rounded"
|
|
" W01-SUB9 =" W01-SUB9 " rounded"
|
|
" W01-SUB0 =" W01-SUB0 " rounded" .
|
|
|
|
DISPLAY "* ------ subtract statements tests end ------ *".
|
|
|
|
D-100.
|
|
DISPLAY "D-100: An subtract exception erorr has NOT occured" .
|
|
|
|
E-100.
|
|
DISPLAY "E-100: An subtract exception erorr has occured" .
|