ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

198 lines
4.0 KiB

  1. 10 PRINT "PROGRAM FILE 26: PRECEDENCE RULES FOR NUMERIC EXPRESSIONS."
  2. 20 PRINT " ANSI STANDARD 7.2, 7.4"
  3. 30 PRINT
  4. 40 PRINT "THIS PROGRAM TESTS WHETHER THE PRECEDENCE RULES ARE"
  5. 50 PRINT "CORRECTLY IMPLEMENTED."
  6. 60 PRINT
  7. 70 PRINT "SECTION 26.1: PRECEDENCE ACCORDING TO OPERATOR AND"
  8. 80 PRINT " POSITION (LEFT TO RIGHT)."
  9. 90 PRINT
  10. 100 PRINT "THIS SECTION TESTS THE PRECEDENCE RULES USING SIMPLE"
  11. 110 PRINT "INTEGER OPERANDS AND ALL ORDERED PAIRS OF OPERATORS"
  12. 120 PRINT "FOR WHICH THE ORDER OF EVALUATION MAKES A DIFFERENCE."
  13. 130 PRINT "NO PARENTHESES ARE USED."
  14. 140 PRINT
  15. 150 PRINT " BEGIN TEST"
  16. 160 PRINT
  17. 163 PRINT "CASE #","SHOULD BE","ACTUAL","OUTCOME"
  18. 166 PRINT
  19. 170 LET F=0
  20. 180 LET O$="1"
  21. 190 LET A=3+4 * 5
  22. 200 LET Y=23
  23. 210 GOSUB 9000
  24. 220 LET A=8+4 / 2
  25. 230 LET O$="2"
  26. 240 LET Y=10
  27. 250 GOSUB 9000
  28. 260 LET A=3.+3 ^ 3
  29. 270 LET O$="3"
  30. 280 LET Y=30
  31. 290 GOSUB 9000
  32. 300 LET A=3 - 40.00E-1+5
  33. 310 LET O$="4"
  34. 320 LET Y=4
  35. 330 GOSUB 9000
  36. 340 LET A=3.00 - 4-.5E+1
  37. 350 LET O$="5"
  38. 360 LET Y=-6
  39. 370 GOSUB 9000
  40. 380 LET O$="6"
  41. 390 LET A=20.E-1-3 * 4
  42. 400 LET Y=-10
  43. 410 GOSUB 9000
  44. 420 LET A=8-4 / 2
  45. 430 LET O$="7"
  46. 440 LET Y=6
  47. 450 GOSUB 9000
  48. 460 LET A=3-2 ^ 3
  49. 470 LET O$="8"
  50. 480 LET Y=-5
  51. 490 GOSUB 9000
  52. 500 LET A=3 * 4+5
  53. 510 LET O$="9"
  54. 520 LET Y=17
  55. 530 GOSUB 9000
  56. 540 LET O$="10"
  57. 550 LET A=3.00E0 * 4.00E+00-5.00E-00
  58. 560 LET Y=7
  59. 570 GOSUB 9000
  60. 580 LET A=003.0*2. ^ 3.
  61. 590 LET O$="11"
  62. 600 LET Y=24
  63. 610 GOSUB 9000
  64. 620 LET A=6 / 2+1
  65. 630 LET O$="12"
  66. 640 LET Y=4
  67. 650 GOSUB 9000
  68. 660 LET A=6 / 2-1
  69. 670 LET O$="13"
  70. 680 LET Y=2
  71. 690 GOSUB 9000
  72. 700 LET A=2 / 1*2
  73. 710 LET O$="14"
  74. 720 LET Y=4
  75. 730 GOSUB 9000
  76. 740 LET A=8 / 2/2
  77. 750 LET O$="15"
  78. 760 LET Y=2
  79. 770 GOSUB 9000
  80. 780 LET O$="16"
  81. 790 LET A=8/2 ^ 2
  82. 800 LET Y=2
  83. 810 GOSUB 9000
  84. 820 LET A=2 ^ 2+2
  85. 830 LET O$="17"
  86. 840 LET Y=6
  87. 850 GOSUB 9000
  88. 860 LET A=2 ^ 3-2
  89. 870 LET O$="18"
  90. 880 LET Y=6
  91. 890 GOSUB 9000
  92. 900 LET A=2 ^ 2*2
  93. 910 LET O$="19"
  94. 920 LET Y=8
  95. 930 GOSUB 9000
  96. 940 LET A=3 ^ 3/3
  97. 950 LET O$="20"
  98. 960 LET Y=9
  99. 970 GOSUB 9000
  100. 980 LET A=2 ^ 3^2
  101. 990 LET O$="21"
  102. 1000 LET Y=64
  103. 1010 GOSUB 9000
  104. 1020 LET A=- 2+2
  105. 1030 LET O$="22"
  106. 1040 LET Y=0
  107. 1050 GOSUB 9000
  108. 1060 LET A=- 2-2
  109. 1070 LET O$="23"
  110. 1080 LET Y=-4
  111. 1090 GOSUB 9000
  112. 1100 LET A=-2 ^ 2
  113. 1110 LET O$="24"
  114. 1120 LET Y=-4
  115. 1130 GOSUB 9000
  116. 1140 PRINT
  117. 1150 IF F=0 THEN 1180
  118. 1160 PRINT "*** TEST FAILED IN ";F;" CASE(S). ***"
  119. 1170 GOTO 1190
  120. 1180 PRINT "*** TEST PASSED ***"
  121. 1190 PRINT
  122. 1200 PRINT " END TEST"
  123. 1210 PRINT
  124. 2000 PRINT "SECTION 26.2: MIXED OPERATORS, PARENTHESES, AND VARIABLES"
  125. 2020 PRINT
  126. 2030 PRINT "THIS SECTION TESTS THE USE OF PARENTHESES TO ALTER THE"
  127. 2040 PRINT "ORDER OF EVALUATION, EXPRESSIONS WITH SEVERAL OPERATORS,"
  128. 2050 PRINT "AND THE USE OF VARIABLES AND CONSTANTS."
  129. 2060 PRINT
  130. 2070 PRINT " BEGIN TEST"
  131. 2080 PRINT
  132. 2083 PRINT "CASE #","SHOULD BE","ACTUAL","OUTCOME"
  133. 2086 PRINT
  134. 2090 LET F=0
  135. 2100 LET O$="1"
  136. 2110 LET A=4
  137. 2120 LET A=3-(A-5)
  138. 2130 LET Y=4
  139. 2140 GOSUB 9000
  140. 2150 LET O$="2"
  141. 2160 LET B=2
  142. 2170 LET A=+2-B+2/B*2^B
  143. 2180 LET Y=4
  144. 2190 GOSUB 9000
  145. 2195 LET O$="3"
  146. 2200 LET A=-B-B+B/002.*.2E+01^2
  147. 2210 LET Y=0
  148. 2220 GOSUB 9000
  149. 2225 LET O$="4"
  150. 2230 LET A=-3
  151. 2240 LET B=-4
  152. 2250 LET A=-(A-B)-B-(A-((+B-(B-A))-A))
  153. 2260 LET Y=6
  154. 2270 GOSUB 9000
  155. 2280 LET O$="5"
  156. 2290 LET B=4
  157. 2300 LET A=-(1-(-3))^(+(-B^1)/(-2))
  158. 2310 LET Y=-16
  159. 2320 GOSUB 9000
  160. 2330 LET O$="6"
  161. 2340 LET A=-2
  162. 2350 LET B=16
  163. 2360 LET C=-30
  164. 2370 LET A=(-B+(B^.02E+02-4*A*C)^.5)/(2*A)
  165. 2380 LET Y=3
  166. 2390 GOSUB 9000
  167. 2400 LET O$="7"
  168. 2410 LET A=60/(10-(-(-9))-7)/2
  169. 2420 LET Y=-5
  170. 2430 GOSUB 9000
  171. 2900 PRINT
  172. 2910 IF F=0 THEN 2940
  173. 2920 PRINT "*** TEST FAILED IN ";F;" CASE(S). ***"
  174. 2930 GOTO 2950
  175. 2940 PRINT "*** TEST PASSED ***"
  176. 2950 PRINT
  177. 2960 PRINT " END TEST"
  178. 8970 PRINT
  179. 8980 PRINT "END PROGRAM 26"
  180. 8990 STOP
  181. 9000 REM HANDLE ERROR REPORT
  182. 9005 PRINT O$,Y,A,
  183. 9007 LET P$="FAILS"
  184. 9010 LET M=0.1
  185. 9020 IF Y>1 THEN 9050
  186. 9030 IF Y<-1 THEN 9050
  187. 9040 LET M=0.01
  188. 9050 LET T=A-Y
  189. 9060 IF T>M THEN 9100
  190. 9070 LET T=Y-A
  191. 9080 IF T>M THEN 9100
  192. 9090 LET P$="PASSES"
  193. 9095 GOTO 9110
  194. 9100 LET F=F+1
  195. 9110 PRINT "TEST ";P$
  196. 9130 RETURN
  197. 9140 END