870 LET 0$="18" 880 LET Y=6 890 GOSUB 9000 900 LET A=2 ^ 2*2 920 LET Y=8 940 LET A=3 3/3 950 LET 0$="20" 960 LET Y=9 970 GOSUB 9000 980 LET A=2^3^2 990 LET 0$="21" 1000 LET Y=64 1010 GOSUB 9000 1020 LET A=- 2+2 1030 LET 0$="22" 1040 LET Y=0 1050 GOSUB 9000 1060 LET A=- 2-2 1070 LET O$="23" 1080 LET Y=-4 1090 GOSUB 9000 1100 LET A=-2 ^ 2 1110 LET O$="24" 1120 LET Y=-4 1130 GOSUB 9000 1140 PRINT 1150 IF F=0 THEN 1180 1160 PRINT "*** TEST FAILED IN ";F;" CASE(S). **** 2010 PRINT "SECTION 26.2: MIXED OPERATORS, PARENTHESES, AND VARIABLES" 2020 PRINT 2030 PRINT "THIS SECTION TESTS THE USE OF PARENTHESES TO ALTER THE" 2040 PRINT "ORDER OF EVALUATION, EXPRESSIONS WITH SEVERAL OPERATORS," 2050 PRINT "AND THE USE OF VARIABLES AND CONSTANTS." 2083 PRINT "CASE #","SHOULD BE","ACTUAL", "OUTCOME" 2086 PRINT 2090 LET F=0 2100 LET 0$="1" 2110 LET A=4 2120 LET A 3-(A-5) 2130 LET Y=4 2140 GOSUB 9000 2150 LET O$="2" 2160 LET B=2 2170 LET A=+2-B+2/B*2^B PROGRAM FILE 26: PRECEDENCE RULES FOR NUMERIC EXPRESSIONS. ANSI STANDARD 7.2, 7.4 THIS PROGRAM TESTS WHETHER THE PRECEDENCE RULES ARE SECTION 26.1: PRECEDENCE ACCORDING TO OPERATOR AND THIS SECTION TESTS THE PRECEDENCE RULES USING SIMPLE SECTION 26.2: MIXED OPERATORS, PARENTHESES, AND VARIABLES THIS SECTION TESTS THE USE OF PARENTHESES TO ALTER THE 5 PRINT "PROGRAM FILE 27: ACCURACY OF CONSTANTS AND VARIABLES." 10 PRINT " ANSI STANDARD 5.2, 5.4, 6.2, 6.4, 10.4" 15 PRINT 20 PRINT "*** NOTE: THIS PROGRAM MAKES USE OF THE ON-GOTO STATEMENT" 25 PRINT" AND FOR-BLOCKS (THE FOR AND NEXT STATEMENTS) WHICH" HAVE NOT YET BEEN TESTED. IF SUBSEQUENT TESTS SHOW" THESE FEATURES TO BE INCORRECTLY IMPLEMENTED, THEN THE " VALIDITY OF THE RESULTS OF THIS TEST ROUTINE IS DOUBTFUL." 30 PRINT " 35 PRINT " 40 PRINT " 45 PRINT 50 PRINT "THIS PROGRAM TESTS THE LEVEL OF ACCURACY OF NUMERIC VALUES," 55 PRINT "USING THE IF-THEN STATEMENT." 60 LET T1-34 70 LET T2-50 80 LET T3=T1+2 90 LET T4-T2+2 100 PRINT 110 PRINT "SECTION 27.1: ACCURACY IN COMPARISON OF VARIABLES." 120 PRINT 130 PRINT "THIS SECTION COMPARES TWO VARIABLES WHICH HAVE BEEN ASSIGNED" 140 PRINT "NUMERICALLY 'CLOSE' VALUES AND THEN DETERMINES WHETHER THE" 150 PRINT "IMPLEMENTATION CAN DISTINGUISH BETWEEN THEM OR IF THEY ARE" 160 PRINT "TREATED AS EQUAL." 170 PRINT 180 LET C$=" > 190 GOSUB 8000 200 LET A = 9.876543212E-7 210 LET A$="9.876543212E-7 : " 220 FOR I=6 TO 9 230 PRINT A$; 240 LET J=I-5 250 ON J GOTO 600,700,800,900 600 LET B= 9.876533E-7 610 PRINT "9.876533E-7"; 620 GOTO 1000 700 LET B= 9.8765422E-7 710 PRINT "9.8765422E-7"; 720 GOTO 1000 800 LET B= 9.87654311E-7 810 PRINT "9.87654311E-7"; 820 GOTO 1000 900 LET B= 9.876543201E-7 910 PRINT "9.876543201E-7"; 920 GOTO 1000 1000 LET U$="T" 1010 LET E$="T" 1020 IF A > B THEN 1040 1030 LET U$="F" 1040 IF A = B THEN 1060 1050 LET E$="F" 1060 REM COMPARISONS FINISHED 1200 GOSUB 8160 1210 NEXT I 1220 GOSUB 8280 3000 PRINT "SECTION 27.2: ACCURACY IN THE COMPARISON OF VARIABLES" 3010 PRINT " 3020 PRINT WITH CONSTANTS." 3030 PRINT "THIS SECTION COMPARES A VARIABLE AND A CONSTANT WHICH HAVE" 3040 PRINT "NUMERICALLY 'CLOSE' VALUES AND THEN DETERMINES WHETHER THE" 3050 PRINT "IMPLEMENTATION CAN DISTINGUISH BETWEEN THEM OR IF THEY ARE" 3060 PRINT "TREATED AS EQUAL." 3070 PRINT 3080 LET C$=" > 3090 GOSUB 8000 3100 LET A$="-9.999988888E36 : " 3110 FOR I=6 TO 9 3120 PRINT A$; 3130 LET J=I-5 3140 ON J GOTO 3200,3300,3400, 3500 3200 LET B= -9.999999E36 3210 PRINT "-9.999999E36"; 3220 GOTO 3600 3300 LET B= -9.9999899E36 3310 PRINT "-9.9999899E36"; 3320 GOTO 3600 3400 LET B= -9.99998899E36 3410 PRINT "-9.99998899E36"; 3420 GOTO 3600 3500 LET B= -9.999988899E36 |