|
- 10 PRINT "PROGRAM FILE 42: ACCURACY OF DIVISION"
- 20 PRINT " ANSI STANDARD 7.2, 7.4, 7.6"
- 30 PRINT
- 40 PRINT "*** NOTE: THIS PROGRAM MAKES USE OF 'READ' AND 'DATA'"
- 50 PRINT " WHICH HAVE NOT YET BEEN TESTED. IF SUBSEQUENT TESTS SHOW"
- 60 PRINT " THESE FEATURES TO BE INCORRECTLY IMPLEMENTED, THEN THE"
- 70 PRINT " VALIDITY OF THE RESULTS OF THIS TEST ROUTINE IS DOUBTFUL."
- 80 PRINT
- 100 PRINT "SECTION 42.1 ACCURACY OF DIVISION."
- 110 PRINT
- 120 PRINT "THIS SECTION TESTS THE ACCURACY OF DIVISION. THE "
- 130 PRINT "COMPUTED RESULT IS COMPARED WITH A RANGE ESTABLISHED BY"
- 140 PRINT "PERTURBING EACH OPERAND BY 1 IN ITS 6TH DIGIT. THE RESULT"
- 150 PRINT "PASSES IF IT FALLS WITHIN THE EXTREME VALUES GENERATED BY"
- 160 PRINT "THIS PERTURBATION (ACCURATE TO SIX DIGITS)."
- 220 PRINT
- 230 PRINT "THIS TEST IS INFORMATIVE ONLY, SINCE THE ANSI STANDARD"
- 240 PRINT "DOES NOT MANDATE ANY ACCURACY FOR NUMERIC EXPRESSIONS."
- 250 PRINT
- 260 PRINT " BEGIN TEST"
- 270 PRINT
- 280 PRINT "FIRST","SECOND","TRUE","COMPUTED","TEST"
- 290 PRINT "OPERAND","OPERAND","VALUE","VALUE","RESULT"
- 300 PRINT
- 310 LET F=0
- 320 READ A1,A2,T,L,H
- 330 IF A1=999 THEN 480
- 335 LET M$="PASS"
- 340 LET C=A1/A2
- 350 IF C<L THEN 380
- 360 IF C>H THEN 380
- 370 GOTO 400
- 380 LET M$="FAIL"
- 390 LET F=F+1
- 400 PRINT A1,A2,T,C,M$
- 410 GOTO 320
- 480 PRINT
- 490 IF F=0 THEN 520
- 500 PRINT "*** INFORMATIVE TEST FAILED IN ";F;" CASE(S) ***"
- 510 GOTO 530
- 520 PRINT "*** INFORMATIVE TEST PASSED ***"
- 530 PRINT
- 540 PRINT " END TEST"
- 550 PRINT
- 560 PRINT "END PROGRAM 42"
- 2000 DATA 0,-74.7589,0,0,0
- 3000 DATA 0.972125000E+13, 0.248864000E-02, 0.390625000E+16
- 3010 DATA 0.390622528E+16, 0.390627472E+16
- 3020 DATA -0.972125000E-04,-0.248864000E+14, 0.390625000E-17
- 3030 DATA 0.390622528E-17, 0.390627472E-17
- 3040 DATA 0.936467000E-01, 0.954647000E-01, 0.980956312E+00
- 3050 DATA 0.980953736E+00, 0.980958887E+00
- 3060 DATA 0.376465000E+38, 0.895857000E+38, 0.420228898E+00
- 3070 DATA 0.420226812E+00, 0.420230984E+00
- 3080 DATA 0.958764000E+18, 0.558589000E+16, 0.171640329E+03
- 3090 DATA 0.171639343E+03, 0.171641316E+03
- 3100 DATA -0.457858000E-16,-0.879796000E-13, 0.520413823E-03
- 3110 DATA 0.520411595E-03, 0.520416052E-03
- 3120 DATA 0.237847000E-37, 0.117265000E-37, 0.202828636E+01
- 3130 DATA 0.202825553E+01, 0.202831619E+01
- 3140 DATA 0.684776000E+38,-0.697536000E+00,-0.981707037E+38
- 3150 DATA -0.981710379E+38,-0.981703696E+38
- 3160 DATA -0.346756000E+21, 0.222736000E-16,-0.155680267E+38
- 3170 DATA -0.155681916E+38,-0.155678619E+38
- 3200 DATA 0.987645000E+00, 0.987897000E-37, 0.999744913E+37
- 3210 DATA 0.999742388E+37, 0.999747437E+37
- 3220 DATA -0.447563000E-36, 0.668575000E+01,-0.669428262E-37
- 3230 DATA -0.669431259E-37,-0.669425264E-37
- 3240 DATA 0.857653000E-19,-0.889763000E+18,-0.963911738E-37
- 3250 DATA -0.963914446E-37,-0.963909031E-37
- 3260 DATA -0.557645000E+01,-0.786453000E+38, 0.709063352E-37
- 3270 DATA 0.709060678E-37, 0.709066025E-37
- 5000 DATA 999,0,0,0,0
- 5010 END
|