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.
 
 
 
 
 
 

70 lines
2.0 KiB

  1. 10 PRINT "PLOT OF FUNCTIONS"
  2. 20 PRINT
  3. 29 REM - NUMBER OF FUNCTIONS WHICH CAN BE PLOTTED IS LIMITED TO 9
  4. 30 DIM Y(9),A$(11)
  5. 40 FOR I=1 TO 11
  6. 49 REM - GET VALUES FOR A$-ARRAY FROM DATA TABLE AT STATEMENT 470
  7. 50 READ A$(I)
  8. 60 NEXT I
  9. 69 REM - STATEMENTS 70 TO 120 REQUEST USER INPUT
  10. 70 PRINT "NUMBER OF FUNCTIONS TO BE PLOTTED";
  11. 80 INPUT N
  12. 90 PRINT "X-AXIS:LEFT ENDPOINT,RIGHT ENDPOINT,INCREMENT";
  13. 100 INPUT X1,X2,X3
  14. 110 PRINT "Y-AXIS:LOWER ENDPOINT,UPPER ENDPOINT,INCREMENT";
  15. 120 INPUT Y1,Y2,Y3
  16. 129 REM - CALCULATE NUMBER OF SPACES ON Y-AXIS
  17. 130 Y2=(Y2-Y1)/Y3
  18. 138 REM - TEST FOR A Y-AXIS TOO LONG FOR OUTPUT DEVICE. IF YES,THEN
  19. 139 REM - LESSEN RANGE OR INCREASE INCREMENT
  20. 140 IF Y2<=70 THEN 170
  21. 150 PRINT "Y-RANGE TOO LARGE"
  22. 160 GOTO 110
  23. 170 PRINT
  24. 180 PRINT
  25. 189 REM - MAKE NOTE OF WHERE AXES CROSS
  26. 190 PRINT "X-AXIS CROSSES Y-AXIS AT Y=";Y1
  27. 200 PRINT "Y-AXIS CROSSES X-AXIS AT X=";X1
  28. 210 PRINT
  29. 219 REM - SET UP LOOP TO READ VALUE AT EACH X-INCREMENT
  30. 220 FOR X=X1 TO X2 STEP X3
  31. 221 REM - FUNCTIONS Y(1) TO Y(9) SHOULD BE ENTERED AT LINES 221TO 229
  32. 225 Y(1)=COS(X)
  33. 228 Y(2)=SIN(X)
  34. 230 FOR I=1 TO N
  35. 239 REM - ESTABLISH THE ROUNDED VALUE OF Y FOR EACH X-INCREMENTVALUE
  36. 240 Y(I)=INT((Y(I)-Y1)/Y3+.5)
  37. 250 NEXT I
  38. 259 REM - LOOP TO READ VALUE OF EACH Y-INCREMENT
  39. 260 FOR I=0 TO Y2
  40. 269 REM - S COUNTS THE NUMBER OF VALUES AT EACH Y-INCREMENT FOREACH X
  41. 270 S=0
  42. 280 FOR J=1 TO N
  43. 289 REM - PLOT A POINT ON THIS SPOT? IF YES, STORE FUNCTION NUMBER IN T
  44. 290 IF Y(J)<>I THEN 320
  45. 300 S=S+1
  46. 310 T=J
  47. 320 NEXT J
  48. 327 REM - TEST FOR NUMBER OF POINTS TO PLOT ON EACH SPOT;
  49. 328 REM - IF 0 PRINT "+" (first line only), IF 1 PRINT FUNCTIONNUMBER,
  50. 329 REM - IF 2 OR MORE PRINT "*"
  51. 330 IF S>0 THEN 360
  52. 340 PRINT A$(SGN(I)+10);
  53. 350 GOTO 400
  54. 360 IF S>1 THEN 390
  55. 370 PRINT A$ (T);
  56. 380 GOTO 400
  57. 390 PRINT "*";
  58. 400 NEXT I
  59. 409 REM - LABEL AXES AT THE LAST SPACE ON EACH AXIS
  60. 410 IF X>X1 THEN 430
  61. 420 PRINT "Y";
  62. 429 REM - ADVANCE PRINTER TO NEXT LINE
  63. 430 PRINT
  64. 439 REM - PRINT SPACE INSTEAD OF "+" AFTER FIRST LINE OF PRINT (y-axis)
  65. 440 A$(11)=" "
  66. 450 NEXT X
  67. 460 PRINT "x"
  68. 470 DATA "1","2","3","4","5","6","7","8","9","+","+"
  69. 480 END