home *** CD-ROM | disk | FTP | other *** search
/ Brotikasten / BROTCD01.iso / c128 / c156.d64 / geosolve (.txt) < prev    next >
Commodore BASIC  |  1995-08-09  |  11KB  |  426 lines

  1. 1 GOTO99
  2. 14 V=(4*(null)*(R^3))/3:RETURN
  3. 16 R=((3*V)/(4*(null)))^(1/3):RETURN
  4. 18 A=4*(null)*R*R:RETURN
  5. 20 R=SQR(A/(4*(null))):RETURN
  6. 22 PRINT"X-Y COORDINATES OF VERTICES ? Y OR N[146]"
  7. 23 GETA$:IFA$<>"Y"ANDA$<>"N"THEN23
  8. 24 RETURN
  9. 25 PRINT"ANOTHER PROBLEM ? Y OR N[146]"
  10. 26 GETA$:IFA$<>"Y"ANDA$<>"N"THEN26
  11. 27 RETURN
  12. 30 AN=(null)*(N-2)/N:RETURN
  13. 32 S=2*R*(COS(AN/2)):RETURN
  14. 34 R=S/(2*(COS(AN/2))):RETURN
  15. 36 D=R*(SIN(AN/2)):RETURN
  16. 37 R=SQR((2*A)/(N*(SIN(AN)))):RETURN
  17. 38 A=N*R*R*(SIN(AN))/2:RETURN
  18. 39 R=D/(SIN(AN/2)):RETURN
  19. 40 S1=H*(SIN(AA)):RETURN
  20. 42 S2=H*(COS(AA)):RETURN
  21. 44 AB=((null)/2)-AA:RETURN
  22. 46 S2=SQR((H*H)-(S1*S1)):RETURN
  23. 48 AA=ATN(S1/S2):RETURN
  24. 50 H=SQR((S1*S1)+(S2*S2)):RETURN
  25. 52 H=S1/SIN(AA):RETURN
  26. 54 P=S1+S2+H:RETURN
  27. 56 A=(S1*S2)/2:RETURN
  28. 60 A=(null)*R*R:RETURN
  29. 62 R=SQR(A/(null)):RETURN
  30. 64 C=2*R*(null):RETURN
  31. 66 R=C/(2*(null)):RETURN
  32. 68 A=S1*S2:RETURN
  33. 70 S2=A/S1:RETURN
  34. 72 S1=(X2-X1):S2=(Y2-Y1):GOSUB50:RETURN
  35. 74 AA=ATN((Y2-Y1)/(X2-X1)):RETURN
  36. 76 X2=(SIN(AA)*H)+X1:RETURN
  37. 78 Y2=(SIN(AA)*H)+Y1:RETURN
  38. 80 V=S1^3:RETURN
  39. 82 S1=V^(1/3):RETURN
  40. 84 SA=6*S1*S1:RETURN
  41. 86 LD=S1*(SQR(3)):RETURN
  42. 88 SD=S1*(SQR(2)):RETURN
  43. 90 V=(null)*R*R*H:RETURN
  44. 92 H=V/((null)*R*R):RETURN
  45. 94 R=SQR(V/((null)*H)):RETURN
  46. 96 S=(null)*D*H:RETURN
  47. 98 A=2*(null)*R*(R+H):RETURN
  48. 99 L$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
  49. 100 POKE53281,3:POKE53280,3:PRINT"[147][144]";
  50. 110 PRINT TAB(8);"[164][164][164][164][164][164][164][164]"
  51. 120 PRINT TAB(8);"GEOSOLVE[146]   BY D. CROOK"
  52. 200 PRINT" SELECT THE TYPE OF PROBLEM FROM BELOW:":PRINTL$
  53. 210 PRINT"1 - REGULAR POLYGON":PRINT"2 - RIGHT TRIANGLE"
  54. 220 PRINT"3 - CIRCLE":PRINT"4 - RECTANGLE"
  55. 230 PRINT"5 - TWO POINTS IN A PLANE":PRINT"6 - CUBE"
  56. 240 PRINT"7 - CYLINDER":PRINT"8 - SPHERE":PRINT"9 - END PROGRAM"
  57. 300 GETZ$:IFZ$=""THEN300
  58. 310 Z=VAL(Z$):IFZ=9THENEND
  59. 320 ONZGOSUB1110,400,860,1910,2275,2440,2700,3200
  60. 330 RUN
  61. 400 PRINT"[147]"SPC(12)"RIGHT TRIANGLES":PRINTL$
  62. 410 PRINT"ENTER KNOWN QUANTITIES FROM BELOW:"
  63. 420 PRINT"1 - HYPOTENUSE/ANGLE":PRINT"2 - SIDE/ANGLE"
  64. 430 PRINT"3 - HYPOTENUSE/SIDE":PRINT"4 - TWO SIDES"
  65. 440 GETZ$:IFZ$=""THEN440
  66. 450 Z=VAL(Z$):ONZGOSUB460,560,660,760
  67. 455 RETURN
  68. 460 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
  69. 470 PRINT"ENTER LENGTH OF HYPOTENUSE";:INPUTH
  70. 480 PRINT"ENTER ANGLE";:INPUTAA:AA=AA*(null)/180
  71. 490 GOSUB40:GOSUB42:GOSUB44:GOSUB54:GOSUB56
  72. 500 PRINT"LENGTH OF SIDE 1 ="S1
  73. 510 PRINT"LENGTH OF SIDE 2 ="S2
  74. 520 PRINT"           ANGLE ="AB*180/(null)
  75. 530 PRINT"            AREA ="A
  76. 540 PRINT"       PERIMETER ="P
  77. 545 GOSUB25
  78. 550 IFA$="Y"THEN460
  79. 555 RETURN
  80. 560 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
  81. 570 PRINT"ENTER LENGTH OF ONE SIDE";:INPUTS1
  82. 580 PRINT"ENTER ANGLE";:INPUTAA:AA=AA*(null)/180
  83. 590 GOSUB52:GOSUB46:GOSUB44:GOSUB54:GOSUB56
  84. 600 PRINT"LENGTH OF HYPOTENUSE ="H
  85. 610 PRINT"    LENGTH OF SIDE 2 ="S2
  86. 620 PRINT"               ANGLE ="AB*180/(null)
  87. 630 PRINT"                AREA ="A
  88. 640 PRINT"           PERIMETER ="P
  89. 645 GOSUB25
  90. 650 IFA$="Y"THEN560
  91. 655 RETURN
  92. 660 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
  93. 670 PRINT"ENTER LENGTH OF HYPOTENUSE";:INPUTH
  94. 680 PRINT"ENTER LENGTH OF SIDE";:INPUTS1
  95. 690 GOSUB46:GOSUB48:GOSUB44:GOSUB54:GOSUB56
  96. 700 PRINT"LENGTH OF SIDE 2 ="S2
  97. 710 PRINT"         ANGLE 1 ="AA*180/(null)
  98. 720 PRINT"         ANGLE 2 ="AB*180/(null)
  99. 730 PRINT"            AREA ="A
  100. 740 PRINT"       PERIMETER ="P
  101. 745 GOSUB25
  102. 750 IFA$="Y"THEN660
  103. 755 RETURN
  104. 760 PRINT"[147]SOLUTION OF RIGHT TRIANGLES":PRINTL$
  105. 770 PRINT"ENTER LENGTH OF SIDE 1";:INPUTS1
  106. 780 PRINT"ENTER LENGTH OF SIDE 2";:INPUTS2
  107. 790 GOSUB50:GOSUB48:GOSUB44:GOSUB54:GOSUB56
  108. 800 PRINT"LENGTH OF HYPOTENUSE ="H
  109. 810 PRINT"             ANGLE 1 ="AA*180/(null)
  110. 820 PRINT"             ANGLE 2 ="AB*180/(null)
  111. 830 PRINT"                AREA ="A
  112. 840 PRINT"           PERIMETER ="P
  113. 845 GOSUB25
  114. 850 IFA$="Y"THEN760
  115. 855 RETURN
  116. 860 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"SELECT KNOWN QUANTITY FROM BELOW:"
  117. 865 PRINT"1 - RADIUS":PRINT"2 - DIAMETER"
  118. 870 PRINT"3 - CIRCUMFERENCE":PRINT"4 - AREA"
  119. 875 GETZ$:IFZ$=""THEN875
  120. 880 Z=VAL(Z$):ONZGOSUB885,930,975,1020
  121. 882 RETURN
  122. 885 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER RADIUS";:INPUTR:D=2*R
  123. 890 GOSUB60:GOSUB64
  124. 895 PRINT"     DIAMETER ="D
  125. 900 PRINT"CIRCUMFERENCE ="C
  126. 910 PRINT"         AREA ="A
  127. 920 GOSUB25
  128. 925 IFA$="Y"THEN885
  129. 926 RETURN
  130. 930 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER DIAMETER";:INPUTD:R=D/2
  131. 935 GOSUB60:GOSUB64
  132. 940 PRINT"       RADIUS ="R
  133. 945 PRINT"CIRCUMFERENCE ="C
  134. 950 PRINT"         AREA ="A
  135. 955 GOSUB25
  136. 960 IFA$="Y"THEN930
  137. 965 RETURN
  138. 975 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER CIRCUMFERENCE";:INPUTC
  139. 980 GOSUB66:GOSUB60
  140. 985 PRINT"       RADIUS ="R
  141. 990 PRINT"     DIAMETER ="R+R
  142. 1000 PRINT"        AREA ="A
  143. 1005 GOSUB25
  144. 1010 IFA$="Y"THEN975
  145. 1015 RETURN
  146. 1020 PRINT"[147]"SPC(15)"CIRCLES":PRINTL$:PRINT"ENTER AREA";:INPUTA
  147. 1025 GOSUB62:GOSUB64
  148. 1030 PRINT"       RADIUS ="R
  149. 1035 PRINT"     DIAMETER ="R+R
  150. 1040 PRINT"CIRCUMFERENCE ="C
  151. 1045 GOSUB25
  152. 1050 IFA$="Y"THEN1020
  153. 1065 RETURN
  154. 1110 PRINT"[147]"SPC(12)"REGULAR POLYGONS":PRINTL$
  155. 1120 PRINT"ENTER THE NUMBER OF SIDES";:INPUTN:PRINT:IFN<3THEN1110
  156. 1130 PRINT"ENTER THE KNOWN QUANTITY FROM BELOW":PRINT
  157. 1140 PRINT"1 - LENGTH OF SIDE":PRINT"2 - MINOR RADIUS"
  158. 1145 PRINT"3 - MAJOR RADIUS":PRINT"4 - AREA"
  159. 1150 GETZ$:IFZ$=""THEN1150
  160. 1155 Z=VAL(Z$):IFZ=9THENEND
  161. 1160 ONZGOSUB1200,1300,1400,1500
  162. 1170 RETURN
  163. 1200 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
  164. 1210 PRINT"LENGTH OF SIDE";:INPUTS
  165. 1220 GOSUB30:GOSUB34:GOSUB36:GOSUB38
  166. 1230 PRINT"MAJOR RADIUS ="R
  167. 1240 PRINT"MINOR RADIUS ="D
  168. 1250 PRINT"        AREA ="A
  169. 1255 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
  170. 1258 PRINT"           CENTER ANGLE ="360/N
  171. 1260 GOSUB22:IFA$="Y"THENGOSUB1600
  172. 1270 GOSUB25
  173. 1280 IFA$="Y"THEN1200
  174. 1290 RETURN
  175. 1300 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
  176. 1310 PRINT"MINOR RADIUS =";:INPUTD
  177. 1320 GOSUB30:GOSUB39:GOSUB32:GOSUB38
  178. 1330 PRINT"MAJOR RADIUS ="R
  179. 1340 PRINT"        SIDE ="S
  180. 1350 PRINT"        AREA ="A
  181. 1355 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
  182. 1358 PRINT"           CENTER ANGLE ="360/N
  183. 1360 GOSUB22:IFA$="Y"THENGOSUB1600
  184. 1370 GOSUB25
  185. 1380 IFA$="Y"THEN1300
  186. 1390 RETURN
  187. 1400 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
  188. 1410 PRINT"MAJOR RADIUS =";:INPUTR
  189. 1420 GOSUB30:GOSUB32:GOSUB36:GOSUB38
  190. 1430 PRINT"MINOR RADIUS ="D
  191. 1440 PRINT"        SIDE ="S
  192. 1450 PRINT"        AREA ="A
  193. 1455 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
  194. 1458 PRINT"           CENTER ANGLE ="360/N
  195. 1460 GOSUB22:IFA$="Y"THENGOSUB1600
  196. 1470 GOSUB25
  197. 1480 IFA$="Y"THEN1400
  198. 1490 RETURN
  199. 1500 PRINT"[147]REGULAR POLYGON WITH"N"SIDES":PRINTL$
  200. 1510 PRINT"        AREA =";:INPUTA
  201. 1520 GOSUB30:GOSUB37:GOSUB32:GOSUB36
  202. 1530 PRINT"MINOR RADIUS ="D
  203. 1540 PRINT"MAJOR RADIUS ="R
  204. 1550 PRINT"        SIDE ="S
  205. 1555 PRINT"ANGLE BETWEEN TWO SIDES ="AN*180/(null)
  206. 1558 PRINT"           CENTER ANGLE ="360/N
  207. 1560 GOSUB22:IFA$="Y"THENGOSUB1600
  208. 1570 GOSUB25
  209. 1580 IFA$="Y"THEN1500
  210. 1590 RETURN
  211. 1600 PRINT"[147]"SPC(10)"POLYGON WITH"N"SIDES"
  212. 1610 PRINT"      X-Y COORDINATES OF VERTICES"
  213. 1620 PRINT"SELECT ORIENTATION TO X/Y-AXIS :"
  214. 1630 PRINT"1 - VERTEX TO LIE ON +X-AXIS"
  215. 1640 PRINT"2 - VERTEX TO LIE ON -X-AXIS"
  216. 1650 PRINT"3 - VERTEX TO LIE ON +Y-AXIS"
  217. 1660 PRINT"4 - VERTEX TO LIE ON -Y-AXIS"
  218. 1670 PRINT"5 - +X-AXIS TO BISECT SIDE"
  219. 1680 PRINT"6 - -X-AXIS TO BISECT SIDE"
  220. 1690 PRINT"7 - +Y-AXIS TO BISECT SIDE"
  221. 1700 PRINT"8 - -Y-AXIS TO BISECT SIDE"
  222. 1710 PRINT"9 - VERTEX TO BE LOCATED (X)-DEGREES        FROM +X-AXIS"
  223. 1720 GETZ$:IFZ$=""THEN1720
  224. 1730 Z=VAL(Z$):ONZGOSUB1750,1760,1770,1780,1790,1800,1810,1820,1830
  225. 1740 GOTO1850
  226. 1750 AD=0:RETURN
  227. 1760 AD=-(null):RETURN
  228. 1770 AD=(null)/2:RETURN
  229. 1780 AD=-(null)/2:RETURN
  230. 1790 AD=(null)/N:RETURN
  231. 1800 AD=(null)/N+(null):RETURN
  232. 1810 AD=(null)/N+(null)/2:RETURN
  233. 1820 AD=(null)/N-(null)/2:RETURN
  234. 1830 PRINT"[147]HOW MANY DEGREES FROM +X-AXIS SHOULD    FIRST VERTEX LIE";:INPUTAD
  235. 1835 AD=AD*(null)/180:RETURN
  236. 1850 PRINT"[147]X-Y COORDINATES OF"N"SIDED POLYGON":PRINT:PRINTSPC(13)"X"TAB(24)"Y"
  237. 1855 PRINTTAB(10)"[192][192][192][