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.
 
 
 
 
 
 

88 lines
2.1 KiB

  1. 10 PRINT "PROGRAM FILE 61: NUMERIC EXPRESSIONS CONTAINING"
  2. 20 PRINT " SUBSCRIPTED VARIABLES."
  3. 30 PRINT " ANSI STANDARD 6.2, 6.4, 7.2, 7.4"
  4. 40 PRINT
  5. 50 PRINT "SECTION 61.1: NUMERIC EXPRESSIONS CONTAINING"
  6. 60 PRINT " SUBSCRIPTED VARIABLES."
  7. 70 PRINT
  8. 80 PRINT "THIS SECTION TESTS WHETHER SUBSCRIPTED VARIABLES"
  9. 90 PRINT "CAN BE USED AS PRIMARIES IN NUMERIC EXPRESSIONS."
  10. 100 PRINT
  11. 110 PRINT " BEGIN TEST"
  12. 120 PRINT
  13. 130 PRINT "CASE #","SHOULD BE","ACTUAL","OUTCOME"
  14. 140 PRINT
  15. 150 LET F=0
  16. 160 LET C1=0
  17. 180 REM ARRAY B(I) CONTAINS FIBONACCI SERIES
  18. 200 LET B(1)=+001.00
  19. 210 LET B(2)=1
  20. 220 FOR I=3 TO 10
  21. 230 LET J=I-1
  22. 240 LET K=I-2
  23. 250 LET B(I)=B(J)+B(K)
  24. 260 NEXT I
  25. 270 LET A=B(5)+B(8)
  26. 280 LET Y=26
  27. 290 GOSUB 9000
  28. 300 LET C(7)=47.23/B(7)+23.E-1
  29. 310 LET H9=7.0
  30. 320 LET A=C(H9)+H9*B(H9)
  31. 330 LET Y=96.933076923
  32. 340 GOSUB 9000
  33. 350 LET H9=6
  34. 360 LET H9=B(H9)
  35. 370 LET H9=B(H9)
  36. 380 LET Z(0)=(H9/7)^B(4)*20/(B(7)-B(4))-B(10)-.02E+02
  37. 390 LET Z(1)=Z(0)+Z(0)
  38. 400 LET Z(2)=-Z(0)-Z(0)
  39. 410 LET Z(3)=Z(0)*Z(0)
  40. 420 LET Z(4)=Z(0)/Z(0)
  41. 430 LET Z(5)=Z(0)^Z(0)
  42. 440 LET A=Z(0)+Z(1)
  43. 450 LET Y=-9
  44. 460 GOSUB 9000
  45. 470 LET A=Z(2)+Z(3)+Z(4)+Z(5)
  46. 480 LET Y=15.96296293
  47. 490 GOSUB 9000
  48. 500 LET A=-2000.00E-03-B(10)-(B(4)-B(7))/2E+1*B(4)^(H9/7)
  49. 510 LET Y=-43.5
  50. 520 GOSUB 9000
  51. 530 FOR I=1 TO 7
  52. 540 FOR J=1 TO 7
  53. 550 LET Q(I,J)=I/J
  54. 560 NEXT J
  55. 570 NEXT I
  56. 580 LET A=Q(6,3)+Q(6,7)*Q(5,4)*(-Q(2,3))*Q(7,2)/Q(5,6)/Q(3,4)
  57. 590 LET Y=-2
  58. 600 GOSUB 9000
  59. 2000 PRINT
  60. 2010 IF F=0 THEN 2040
  61. 2020 PRINT "*** TEST FAILED IN ";F;" CASE(S). ***"
  62. 2030 GOTO 2050
  63. 2040 PRINT "*** TEST PASSED ***"
  64. 2050 PRINT
  65. 2060 PRINT " END TEST"
  66. 2070 PRINT
  67. 2080 PRINT "END PROGRAM 61"
  68. 2090 STOP
  69. 9000 REM HANDLE REPORT
  70. 9002 REM THIS SUBROUTINE ADOPTS A VERY LOOSE CRITERION OF CORRECTNESS
  71. 9004 REM (RELATIVE ERROR < .01). ITS PURPOSE IS NOT TO MEASURE ACCURACY
  72. 9006 REM BUT ONLY TO ASSURE THAT THE SEMANTICS OF THE EXPRESSION
  73. 9008 REM HAVE BEEN CORRECTLY IMPLEMENTED.
  74. 9010 LET C1=C1+1
  75. 9020 PRINT C1,Y,A,
  76. 9030 LET P$="FAILS"
  77. 9040 LET M=0.01
  78. 9050 LET T=(A-Y)/Y
  79. 9060 IF T>M THEN 9110
  80. 9070 LET T=-T
  81. 9080 IF T>M THEN 9110
  82. 9090 LET P$="PASSES"
  83. 9100 GOTO 9120
  84. 9110 LET F=F+1
  85. 9120 PRINT "TEST ";P$
  86. 9130 RETURN
  87. 9140 END