home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / EDUCATON / GEO_MATH.ZIP / M8.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-04-15  |  2.1 KB  |  111 lines

  1. 0  CLS:PRINT
  2. 10   PRINT "COORDINATE PLOT"
  3. 20   PRINT 
  4. 30   DIM X(100),Y(100)
  5. 40   PRINT "X-AXIS: LEFT ENDPOINT, RIGHT ENDPOINT, INCREMENT";
  6. 50   INPUT A1,A2,A3
  7. 60   PRINT "Y-AXIS: LOWER ENDPOINT, UPPER ENDPOINT, INCREMENT";
  8. 70   INPUT B1,B2,B3
  9. 80  B2 = (B2 - B1) / B3
  10. 90   IF B2 <  = 70 THEN 120
  11. 100   PRINT "Y-RANGE TOO LARGE"
  12. 110   GOTO 60
  13. 120   PRINT "NUMBER OF POINTS TO BE PLOTTED";
  14. 130   INPUT N
  15. 140   IF N = 0 THEN 1070
  16. 150   IF N <  = 99 THEN 180
  17. 160   PRINT "TOO MANY POINTS"
  18. 170   GOTO 120
  19. 180   FOR I = 1 TO N
  20. 190   IF I > 1 THEN 220
  21. 200   PRINT "COORDINATES OF POINT ";I;
  22. 210   GOTO 230
  23. 220   PRINT "               POINT ";I;
  24. 230   INPUT X(I),Y(I)
  25. 240  X(I) =  INT ((X(I) - A1) / A3 + 0.5)
  26. 250  Y(I) =  INT ((Y(I) - B1) / B3 + 0.5)
  27. 260   NEXT I
  28. 270  Y(N + 1) =  INT (B2 + 0.5) + 1
  29. 280  X(N + 1) =  INT ((A2 - A1) / A3 + 0.5) + 1
  30. 290   PRINT 
  31. 300   PRINT "INTERSECTION OF AXES AT (";A1;",";B1;")"
  32. 310   PRINT 
  33. 320   FOR J = 1 TO N
  34. 330   FOR I = 1 TO N - J
  35. 340  A = X(I)
  36. 350  B = Y(I)
  37. 360  C = X(I + 1)
  38. 370  D = Y(I + 1)
  39. 380   IF A < C THEN 430
  40. 390  X(I) = C
  41. 400  Y(I) = D
  42. 410  X(I + 1) = A
  43. 420  Y(I + 1) = B
  44. 430   NEXT I
  45. 440   NEXT J
  46. 450  T = 1
  47. 460   FOR P = 0 TO N - 1
  48. 470   IF X(P + 1) = 0 THEN 490
  49. 480   NEXT P
  50. 490   FOR I = 0 TO  INT ((A2 - A1) / A3 + 0.5)
  51. 500  T = T + P
  52. 510  P = 0
  53. 520   IF T > N THEN 540
  54. 530   IF X(T) = I THEN 590
  55. 540   IF I = 0 THEN 570
  56. 550   PRINT "*";
  57. 560   GOTO 1040
  58. 570  S = N + 1
  59. 580   GOTO 920
  60. 590   FOR L = T TO N
  61. 600   IF X(L) > X(T) THEN 630
  62. 610  P = P + 1
  63. 620   NEXT L
  64. 630   IF P = 1 THEN 730
  65. 640   FOR J = 1 TO P
  66. 650   FOR L = 1 TO P - J
  67. 660  D = Y(T + L - 1)
  68. 670  B = Y(T + L)
  69. 680   IF D <  = B THEN 710
  70. 690  Y(T + L - 1) = B
  71. 700  Y(T + L) = D
  72. 710   NEXT L
  73. 720   NEXT J
  74. 730   FOR L = 0 TO P - 1
  75. 740  Z = Y(T + L)
  76. 750   IF Z >  = 0 THEN 770
  77. 760   NEXT L
  78. 770   IF I = 0 THEN 910
  79. 780   IF Z = 0 THEN 800
  80. 790   PRINT "*";
  81. 800   IF L = P - 1 THEN 870
  82. 810   FOR J = L TO P - 1
  83. 820   IF Z > B2 THEN 1040
  84. 830   IF Y(T + J) = Z THEN 860
  85. 840   PRINT  TAB( Z);"+";
  86. 850  Z = Y(T + J)
  87. 860   NEXT J
  88. 870   IF Z < 0 THEN 1040
  89. 880   IF Z > B2 THEN 1040
  90. 890   PRINT  TAB( Z);"+";
  91. 900   GOTO 1040
  92. 910  S = T + L
  93. 920   FOR J = 0 TO B2
  94. 930   IF Y(S) <  > J THEN 1010
  95. 940   PRINT "+";
  96. 950   FOR K = S TO T + P - 1
  97. 960   IF Y(K) = Y(S) THEN 990
  98. 970  S = K
  99. 980   GOTO 1020
  100. 990   NEXT K
  101. 1000   GOTO 1020
  102. 1010   PRINT "*";
  103. 1020   NEXT J
  104. 1030   PRINT "Y";
  105. 1040   PRINT 
  106. 1050   NEXT I
  107. 1060   PRINT "X"
  108. 1065  PRINT "Press any key to return to menu."
  109. 1069  A$=INKEY$: IF A$="" THEN 1069
  110. 1070   RUN "MATH"
  111.