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.
 
 
 
 
 
 

90 lines
2.6 KiB

  1. 10 PRINT "PROGRAM FILE 29: EXCEPTION - OVERFLOW OF NUMERIC EXPRESSIONS."
  2. 20 PRINT " ANSI STANDARD 7.5"
  3. 30 PRINT
  4. 40 PRINT "THIS PROGRAM TESTS VARIOUS CASES OF NUMERIC OVERFLOW."
  5. 50 PRINT
  6. 60 PRINT "SECTION 29.1: POSITIVE OVERFLOW"
  7. 70 PRINT
  8. 80 PRINT "THIS SECTION TESTS THE RESULT OF EXPRESSION EVALUATION"
  9. 90 PRINT "EXCEEDING POSITIVE MACHINE INFINITY."
  10. 100 PRINT
  11. 110 PRINT "TO PASS THIS TEST:"
  12. 120 PRINT
  13. 130 PRINT " 1) A MESSAGE IDENTIFYING THE EXCEPTION MUST BE"
  14. 140 PRINT " DISPLAYED, AND"
  15. 150 PRINT
  16. 160 PRINT " 2) POSITIVE INFINITY MUST BE SUPPLIED AS THE VALUE"
  17. 170 PRINT " OF THE EXPRESSION AND EXECUTION CONTINUES."
  18. 180 PRINT
  19. 190 PRINT " BEGIN TEST"
  20. 200 PRINT
  21. 210 LET M=10
  22. 220 LET F=1
  23. 230 LET A=1E36
  24. 240 LET B=1
  25. 250 PRINT "ABOUT TO COMPUTE ";A;" * ";M
  26. 260 LET A=A*M
  27. 270 PRINT "RESULT = ";A
  28. 280 PRINT
  29. 290 PRINT "----------------------------------------"
  30. 300 PRINT
  31. 310 IF B>=A THEN 360
  32. 320 LET B=A
  33. 330 LET F=F*1.1
  34. 340 LET M=10^F
  35. 350 GOTO 250
  36. 360 REM CONVERGE
  37. 370 IF A>.99E38 THEN 410
  38. 380 PRINT "*** TEST FAILED: VALUE SUPPLIED LESS THAN MINIMUM"
  39. 390 PRINT " POSITIVE MACHINE INFINITY. ***"
  40. 400 GOTO 440
  41. 410 PRINT "LAST TWO MULTIPLICATIONS SHOULD HAVE BEEN REPORTED"
  42. 420 PRINT "AS OVERFLOW, AND POSITIVE INFINITY SUPPLIED; IF SO,"
  43. 430 PRINT "*** TEST PASSED *** OTHERWISE *** TEST FAILED ***"
  44. 440 PRINT
  45. 450 PRINT " END TEST"
  46. 460 PRINT
  47. 470 PRINT "SECTION 29.2: NEGATIVE OVERFLOW"
  48. 480 PRINT
  49. 490 PRINT "THIS SECTION TESTS THE RESULT OF EXPRESSION EVALUATION"
  50. 500 PRINT "EXCEEDING NEGATIVE MACHINE INFINITY."
  51. 510 PRINT
  52. 520 PRINT "TO PASS THIS TEST:"
  53. 530 PRINT
  54. 540 PRINT " 1) A MESSAGE IDENTIFYING THE EXCEPTION MUST BE"
  55. 550 PRINT " DISPLAYED, AND"
  56. 560 PRINT
  57. 570 PRINT " 2) NEGATIVE INFINITY MUST BE SUPPLIED AS THE VALUE"
  58. 580 PRINT " OF THE EXPRESSION AND EXECUTION CONTINUES."
  59. 590 PRINT
  60. 600 PRINT " BEGIN TEST"
  61. 610 PRINT
  62. 620 LET M=10
  63. 630 LET F=1
  64. 640 LET A=-1E36
  65. 650 LET B=1
  66. 660 PRINT "ABOUT TO COMPUTE ";A;" * ";M
  67. 670 LET A=A*M
  68. 680 PRINT "RESULT = ";A
  69. 690 PRINT
  70. 700 PRINT "----------------------------------------"
  71. 710 PRINT
  72. 720 IF B<=A THEN 770
  73. 730 LET B=A
  74. 740 LET F=F*1.1
  75. 750 LET M=10^F
  76. 760 GOTO 660
  77. 770 REM CONVERGE
  78. 780 IF A<-.99E38 THEN 820
  79. 790 PRINT "*** TEST FAILED: VALUE SUPPLIED GREATER THAN MINIMUM"
  80. 800 PRINT " NEGATIVE MACHINE INFINITY. ***"
  81. 810 GOTO 850
  82. 820 PRINT "LAST TWO MULTIPLICATIONS SHOULD HAVE BEEN REPORTED"
  83. 830 PRINT "AS OVERFLOW, AND NEGATIVE INFINITY SUPPLIED; IF SO,"
  84. 840 PRINT "*** TEST PASSES *** OTHERWISE *** TEST FAILS *** "
  85. 850 PRINT
  86. 860 PRINT " END TEST"
  87. 870 PRINT
  88. 880 PRINT "END PROGRAM 29"
  89. 890 END