home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / compuserve / Basic / SHAPES.EXB < prev    next >
Text File  |  2006-10-19  |  12KB  |  224 lines

  1. 100 REM COPYRIGHT 1984  MARTIN KROLL JR
  2. 110 ON WARNING NEXT
  3. 120 GOSUB 270
  4. 130 CALL CHAR(94,"186699A1A1996618")
  5. 140 MSG$=RPT$(" ",28)&"GEOMETRIC SHAPES & FORMULAS" :: FOR X=1 TO 2 :: FOR DE=1 
  6. TO LEN(MSG$)
  7. 150 DISPLAY AT(5,1):SEG$(MSG$,DE,28):: IF X=2 AND DE=28 THEN 170
  8. 160 NEXT DE :: NEXT X
  9. 170 DISPLAY AT(20,7):"MARTIN KROLL, JR": :"9      PITTSBURGH, PA": :TAB(12);"^ 1
  10. 984"
  11. 180 FOR DE=1 TO 1500 :: NEXT DE :: CALL CLEAR :: CALL DELSPRITE(ALL):: FOR CO=1 
  12. TO 8 :: CALL COLOR(CO,2,1):: NEXT CO :: GOSUB 380
  13. 190 GOSUB 410 :: GOSUB 500 :: GOSUB 540
  14. 200 IF CH=10 OR CH=11 THEN CALL CHAR(94,"3C041C043C")ELSE CALL CHAR(94,"3C040C10
  15. 3C")
  16. 210 ON CH GOSUB 690,700,710,720,730,750,760,780,800,820,830,840,860,870,880
  17. 220 DISPLAY AT(20,1):M$&" =";Z :: DISPLAY AT(24,1):"ANOTHER "&M$ :: DISPLAY AT(2
  18. 4,24):"(Y/N)"
  19. 230 ACCEPT AT(24,25)VALIDATE("YN")BEEP SIZE(-1):AN$ :: IF AN$="Y" THEN 210
  20. 240 DISPLAY AT(24,1):"ANOTHER FORMULA  (Y/N)      " :: ACCEPT AT(24,19)VALIDATE(
  21. "YN")BEEP SIZE(-1):AN$ :: IF AN$="Y" THEN 190
  22. 250 GOSUB 270 :: DISPLAY AT(8,8):"T H E   E N D" :: FOR DE=1 TO 1500 :: NEXT DE 
  23. :: STOP
  24. 260 REM SPRITE CHAR
  25. 270 CALL CLEAR :: CALL SCREEN(2):: CALL MAGNIFY(4)
  26. 280 CALL CHAR(96,"FF"&RPT$("80",9)&"FF0000000000FF"&RPT$("01",9)&"FF")
  27. 290 CALL CHAR(100,"040A0910102020404080FF"&RPT$("0",16)&"80402010080402FF")
  28. 300 CALL CHAR(104,"FF"&RPT$("80",14)&"FFFF"&RPT$("01",14)&"FF")
  29. 310 CALL CHAR(108,"01020408102040FF"&RPT$("0",16)&"F8080404020201FF0")
  30. 320 CALL CHAR(112,"0102040810204080FF818181818181FFFF030509112141810102040810204
  31. 080")
  32. 330 CALL CHAR(116,"07182040408080808080804040201807E0180402020101010101010202041
  33. 8E0")
  34. 340 CALL SPRITE(#1,96,8,113,129,12,17,#2,100,5,32,78,30,-69,#3,104,9,120,36,-40,
  35. 11,#4,108,13,90,14,-15,-36)
  36. 350 CALL SPRITE(#5,112,11,80,45,0,14,#6,116,14,87,34,-7,0)
  37. 360 FOR CO=1 TO 8 :: CALL COLOR(CO,16,1):: NEXT CO :: RETURN
  38. 370 REM PERM DEFINE
  39. 380 READ X,C$ :: CALL CHAR(X,C$):: IF X<>93 THEN 380
  40. 390 FOR X=95 TO 110 :: READ C$ :: CALL CHAR(X,C$):: NEXT X :: RETURN
  41. 400 REM MENU
  42. 410 RESTORE 1060 :: CALL CLEAR :: CALL SCREEN(2):: DISPLAY AT(2,9):"YOUR CHOICE"
  43. 420 X=5 :: FOR CH=1 TO 15 :: READ M$,SHAPE$ :: DISPLAY AT(X,1):STR$(CH);TAB(4);M
  44. $;" OF ";SEG$(SHAPE$,1,11):: X=X+1
  45. 430 IF LEN(SHAPE$)>11 THEN DISPLAY AT(X,5):SEG$(SHAPE$,13,7):: X=X+1
  46. 440 NEXT CH
  47. 450 DISPLAY AT(24,1):"ENTER THE NUMBER (1-15) 7"
  48. 460 CALL SCREEN(8):: ACCEPT AT(24,25)VALIDATE(NUMERIC)BEEP SIZE(-2):CH :: IF CH<
  49. 1 OR CH>15 THEN 460
  50. 470 RESTORE 1060 :: FOR CH=0 TO CH-1 :: READ M$,SHAPE$ :: NEXT CH
  51. 480 CALL CLEAR :: MSG$=M$&" - "&SHAPE$ :: L=(28-LEN(MSG$))/2+1 :: DISPLAY AT(1,L
  52. ):MSG$ :: RETURN
  53. 490 REM CHAR_DEFINE
  54. 500 IF CH<7 THEN CALL SCREEN(4)ELSE IF CH<13 THEN CALL SCREEN(12)ELSE CALL SCREE
  55. N(15)
  56. 510 X=111 :: IF CH=8 THEN RESTORE 1080 ELSE IF (CH+1)/4-INT((CH+1)/4)<.5 THEN RE
  57. STORE 1130 ELSE RESTORE 1170 :: X=134
  58. 520 FOR X=X TO 143 :: READ C$ :: CALL CHAR(X,C$):: NEXT X :: RETURN
  59. 530 REM DRAW
  60. 540 ON CH GOSUB 570,580,590,600,610,620,630,640,650,660,600,670,570,580,590
  61. 550 READ R1,R2,C1,C2 :: FOR R=R1 TO R2 :: FOR C=C1 TO C2 :: READ X :: IF X=-1 TH
  62. EN RETURN ELSE IF X=0 THEN READ C :: GOTO 560 ELSE CALL HCHAR(R,C,X)
  63. 560 NEXT C :: NEXT R :: RETURN
  64. 570 RESTORE 1190 :: RETURN !SQUARE
  65. 580 RESTORE 1210 :: RETURN !RECTANGLE
  66. 590 RESTORE 1250 :: RETURN !CIRCLE
  67. 600 RESTORE 1280 :: RETURN !SPHERE
  68. 610 RESTORE 1310 :: RETURN !TRAPEZOID
  69. 620 RESTORE 1340 :: RETURN !TRIANGLE
  70. 630 RESTORE 1370 :: RETURN !CONE
  71. 640 RESTORE 1400 :: RETURN !RECT PYRAMID
  72. 650 RESTORE 1430 :: RETURN !RECT PRISM
  73. 660 RESTORE 1500 :: RETURN !CUBE
  74. 670 RESTORE 1540 :: RETURN !CYLINDER
  75. 680 REM FORMULAS
  76. 690 DISPLAY AT(6,13):"A = S^" :: GOSUB 940 :: Z=S^2 :: RETURN
  77. 700 DISPLAY AT(7,13):"A = W*L" :: GOSUB 960 :: Z=W*L :: RETURN
  78. 710 DISPLAY AT(7,13):"1 A=?*(D/2)^" :: DISPLAY AT(9,13):"2 A=?*R^" :: GOSUB 900 
  79. :: Z=PI*R^2 :: RETURN
  80. 720 DISPLAY AT(7,13):"1 A=4*?*(D/2)^" :: DISPLAY AT(9,13):"2 A=4*?*R^" :: GOSUB 
  81. 900 :: Z=4*PI*R^2 :: RETURN
  82. 730 DISPLAY AT(4,13):"A=(C+B)/2*H" :: DISPLAY AT(8,13):"SIDE C =      " :: GOSUB
  83.  990 :: ACCEPT AT(8,22)VALIDATE(NUMERIC)BEEP SIZE(-8):C
  84. 740 Z=(B+C)/2*H :: RETURN
  85. 750 DISPLAY AT(4,13):"A=(B*H)/2" :: GOSUB 990 :: Z=B*H/2 :: RETURN
  86. 760 DISPLAY AT(7,13):"1 V=?*(D/2)^"&"*H/3" :: DISPLAY AT(9,13):"2 V=?*R^"&"*H/3"
  87.  :: DISPLAY AT(14,13):"HEIGHT =        "
  88. 770 GOSUB 900 :: ACCEPT AT(14,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=PI*R^2*H/
  89. 3 :: RETURN
  90. 780 DISPLAY AT(6,13):"V=L*W*H/3" :: DISPLAY AT(13,13):"HEIGHT =        " :: GOSU
  91. B 960
  92. 790 ACCEPT AT(13,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=L*W*H/3 :: RETURN
  93. 800 DISPLAY AT(6,13):"V=W*L*D" :: DISPLAY AT(13,13):"DEPTH =      " :: GOSUB 960
  94. 810 ACCEPT AT(13,21)VALIDATE(NUMERIC)BEEP SIZE(-10):D :: Z=W*D*L :: RETURN
  95. 820 DISPLAY AT(6,13):"V=S^" :: GOSUB 940 :: Z=S^3 :: RETURN
  96. 830 DISPLAY AT(7,13):"1 V=4/3*?*(D/2)^" :: DISPLAY AT(9,13):"2 V=4/3*?*R^" :: GO
  97. SUB 900 :: Z=4/3*PI*R^3 :: RETURN
  98. 840 DISPLAY AT(7,13):"1 V=?*(D/2)^"&"*H" :: DISPLAY AT(9,13):"2 V=?*R^"&"*H" :: 
  99. DISPLAY AT(14,13):"HEIGHT =        "
  100. 850 GOSUB 900 :: ACCEPT AT(14,22)VALIDATE(NUMERIC)BEEP SIZE(-7):H :: Z=H*PI*R^2 
  101. :: RETURN
  102. 860 DISPLAY AT(6,13):"P = 4 * S" :: GOSUB 940 :: Z=4*S :: RETURN
  103. 870 DISPLAY AT(7,13):"P = 2*W + 2*L" :: GOSUB 960 :: Z=2*(W+L):: RETURN
  104. 880 DISPLAY AT(7,13):"1 C=?*D" :: DISPLAY AT(9,13):"2 C=?*R*2" :: GOSUB 900 :: Z
  105. =R*2*PI :: RETURN
  106. 890 REM PICK R OR D
  107. 900 DISPLAY AT(5,14):"FORMULAS" :: DISPLAY AT(12,13):"FORMULA 1 OR 2" :: ACCEPT 
  108. AT(12,26)VALIDATE("12")BEEP SIZE(-1):PK
  109. 910 IF PK=2 THEN DISPLAY AT(12,13):"RADIUS =       " :: ON WARNING NEXT :: ACCEP
  110. T AT(12,22)VALIDATE(NUMERIC)BEEP SIZE(-7):R :: RETURN
  111. 920 DISPLAY AT(12,13):"DIAMETER =      " :: ACCEPT AT(12,24)VALIDATE(NUMERIC)BEE
  112. P SIZE(-5):D :: R=D/2 :: RETURN
  113. 930 REM SIDE
  114. 940 DISPLAY AT(8,13):"SIDE =  " :: ACCEPT AT(8,20)VALIDATE(NUMERIC)BEEP SIZE(-10
  115. ):S :: RETURN
  116. 950 REM W_L
  117. 960 DISPLAY AT(9,13):"WIDTH =  " :: DISPLAY AT(11,13):"LENGTH =  "
  118. 970 ACCEPT AT(9,21)VALIDATE(NUMERIC)BEEP SIZE(-10):W :: ACCEPT AT(11,22)VALIDATE
  119. (NUMERIC)BEEP SIZE(-10):L :: RETURN
  120. 980 REM B_H
  121. 990 DISPLAY AT(6,13):"BASE =  " :: DISPLAY AT(7,13):"HEIGHT =  "
  122. 1000 ACCEPT AT(6,20)VALIDATE(NUMERIC)BEEP SIZE(-10):B :: ACCEPT AT(7,22)VALIDATE
  123. (NUMERIC)BEEP SIZE(-7):H :: RETURN
  124. 1010 DATA 33,00000000000000FFFF,35,00000000FF,36,101010101010101,37,010102020404
  125. 0808,38,101020204040808
  126. 1020 DATA 39,808040402020101,42,0000004428102844,44,0808040402020101,58,01020408
  127. 1020408,59,00102040FF40201,60,8181424224241818
  128. 1030 DATA 62,00000000FF103854,63,007FA42424242424,64,001000100010001,91,10001000
  129. 100010FF,92,0101010101010101,93,808080808080808
  130. 1040 DATA 6018040202041CE8,0000000000000102,0000010618608,033CC,FF1038549210101,
  131. C03C03,00008060180601,000000000000804,04081020408
  132. 1050 DATA 201008040201,020404080810102,4020201010080804,202040404040808,04040202
  133. 02020101,808890A0FFA09088,01110905FF050911
  134. 1060 DATA AREA,SQUARE,AREA,RECTANGLE,AREA,CIRCLE,AREA,SPHERE,AREA,TRAPEZOID,AREA
  135. ,TRIANGLE,VOLUME,CONE,VOLUME,RECTANGULAR PYRAMID
  136. 1070 DATA VOLUME,RECTANGULAR PRISM,VOLUME,CUBE,VOLUME,SPHERE,VOLUME,CYLINDER,PER
  137. IMETER,SQUARE,PERIMETER,RECTANGLE,CIRCUMFERENCE,CIRCLE
  138. 1080 DATA 010103030506070A,80C0A06050484424,1B1215242544455,2221101010100808,000
  139. 0804040201008,0000010102020404,898809081110111
  140. 1090 DATA 0804040404020202,04040201,000000008040402,080810101020204,102424242724
  141. 4444,01414141C040404,000000008080804,100804040201
  142. 1100 DATA 000000000000804,0000000001010202,4080808,414040808180818,4040402020201
  143. 01,4020100804040201,020404080808101
  144. 1110 DATA FF00010009040301,FF00000020408,FF10080808040404,FF0204081020408,212224
  145. 4850A0C0FF,04020202010101FF,00080402FF020408
  146. 1120 DATA 0000000000040404,0405050290A0C0F,0F0305090040404,4040408
  147. 1130 DATA 808040404040202,0101020202020404,2010100808040402,0408081010202040,020
  148. 1,0000804020100804,000001020408102,408,008060180601
  149. 1140 DATA 0000000000C03C03,0000000000033CC0,00010618608,92543810FF,0000000007186
  150. 08,00000FF,037C8,FF0010101010101,C03E01,0000F00F
  151. 1150 DATA 00000000E0180601,80601807,00000000F00F,0000000000807C03,06182040402038
  152. 17,0000000000013EC,000000000FF,010618E
  153. 1160 DATA 2020404040408081,0404020202020181,8698A0C0C0A09886,6119050303051961,81
  154. 8040404040202,8101020202020404
  155. 1170 DATA FF01010101010101,FF8080808080808,80808080808080FF,00080402FF020408,103
  156. 854921010101,01010101010101FF,1010101092543810
  157. 1180 DATA 0F0305091020408,0102040890A0C0F,8040201008040201
  158. 1190 DATA 6,13,3,8,135,34,34,34,34,134,93,0,7,92,93,0,7,92,93,0,7,92,136,33,33,3
  159. 3,33,139,0,8,59,35,83
  160. 1200 DATA 35,35,137,-1
  161. 1210 DATA 6,18,3,10,135,34,34,34,34,134,32,138,93,0,7,92,32,36,93,0,7,92,32,36,9
  162. 3,0,7,92,32,36
  163. 1220 DATA 93,0,7,92,32,36,93,0,7,92,32,76,93,0,7,92,32,32
  164. 1230 DATA 93,0,7,92,32,36,93,0,7,92,32,36,93,0,7,92,32,36
  165. 1240 DATA 136,33,33,33,33,139,32,140,0,10,59,35,87,35,35,137,-1
  166. 1250 DATA 3,11,4,12,32,96,97,98,99,100,101,102,32,96,103,32,32,36,32,32,104,102,
  167. 105,0,7,82,0,11,106
  168. 1260 DATA 107,0,7,36,0,11,108,109,35,35,35,123,35,68,35,110,111,0,11,112,113,0,1
  169. 1,114,115,116,0,10,117,118
  170. 1270 DATA 32,115,119,120,33,121,122,118,-1
  171. 1280 DATA 3,11,4,12,32,96,97,98,99,100,101,102,32,96,103,32,32,82,32,32,104,102,
  172. 105,0,7,36,0,11,106,138
  173. 1290 DATA 124,125,126,127,128,129,130,139,140,35,35,35,123,35,68,35,141,142,131,
  174. 132,133,33,135,136,137,143
  175. 1300 DATA 113,0,11,114,115,116,0,10,117,118,32,115,119,120,33,121,122,118,-1
  176. 1310 DATA 5,13,2,14,0,4,59,35,67,35,35,137,0,14,0,14,138,32,37,34,34,34,34,34,34
  177. ,143,0,14
  178. 1320 DATA 72,32,38,0,11,143,32,32,36,37,0,12,143,32,140,38,0,13,143,32,34,34,34,
  179. 34,34,34,34,34,34,34
  180. 1330 DATA 34,34,0,14,32,59,35,35,35,35,66,35,35,35,35,35,137,-1
  181. 1340 DATA 3,13,2,14,138,0,5,37,143,0,14,36,0,5,38,32,143,0,14,36,32,32,37,0,8,14
  182. 3,0,14,72,32,32,38
  183. 1350 DATA 0,9,143,0,14,36,32,37,0,10,143,0,14,36,32,38,0,11,143,32,32,36,37,0,12
  184. ,143,32,140,38,0
  185. 1360 DATA 13,143,32,34,34,34,34,34,34,34,34,34,34,34,34,0,14,32,59,35,35,66,35,3
  186. 5,35,35,35,35,35,137,-1
  187. 1370 DATA 6,15,4,12,32,124,125,126,34,128,129,130,32,134,35,35,35,62,35,68,35,95
  188. ,44,131,132,133,91
  189. 1380 DATA 135,136,137,38,32,39,32,32,64,32,32,37,32,32,44,32,32,64,32,32,38,32,3
  190. 2,32,39,32,72,32,37
  191. 1390 DATA 32,32,32,32,44,32,64,32,38,32,32,0,6,39,64,37,0,12,0,6,44,64,38,0,12,0
  192. ,7,60,-1
  193. 1400 DATA 3,11,3,10,32,32,111,112,0,10,32,32,113,114,115,0,10,32,116,117,118,119
  194. ,120,32,32,32,121,122,123
  195. 1410 DATA 124,125,126,32,127,128,129,32,130,32,131,32,132,58,133,134,135,34,136,
  196. 32,137,33,33,33
  197. 1420 DATA 138,58,140,142,0,8,141,143,59,35,76,35,139,-1
  198. 1430 DATA 2,18,2,12,0,5,33,33,33,33,33,33,32,0,4,58,0,10,58,93,0,3,58,0,9,58,32,
  199. 93,32,58,0,8,58
  200. 1440 DATA 0,11,93,138,135,34,34,34,34,134,0,11,93,36,93,0,7,92,0,11,93
  201. 1450 DATA 36,93,0,7,92,0,11,93,36,93,0,7,92,0,11,93
  202. 1460 DATA 36,93,0,7,92,0,11,93,76,93,0,7,92,0,11,93
  203. 1470 DATA 36,93,0,7,92,0,11,93,36,93,0,7,92,0,11,93
  204. 1480 DATA 36,93,0,7,92,0,10,58,32,36,93,0,7,92,32,58,32,141,140,136,33,33,33,33,
  205. 139,58,32,68,32,0
  206. 1490 DATA 9,142,0,12,32,59,35,87,35,35,137,-1
  207. 1500 DATA 2,13,3,12,0,5,33,33,33,33,33,33,32,32,32,58,0,10,58,93,32,58,0,9,58,32
  208. ,93
  209. 1510 DATA 58,0,8,58,0,11,93,135,34,34,34,34,134,0,11,93,93,0,7,92,0,11,93,93,0,7
  210. ,92,0,11,93
  211. 1520 DATA 93,0,7,92,0,10,58,32,93,0,7,92,32,58,32,32,136,33,33,33,33,139,58,0,12
  212. ,0,12,59,35
  213. 1530 DATA 83,35,35,137,-1
  214. 1540 DATA 3,18,2,13,0,4,96,97,98,99,100,101,102,32,32,0,3,96,103,0,7,36,0,10,104
  215. ,102,32,0,3,105
  216. 1550 DATA 0,7,82,0,11,106,32,0,3,107,0,7,36,0,11,108,32,99,92,109,35,35,35,123,3
  217. 5,68,35,110,93
  218. 1560 DATA 36,92,111,0,11,112,93,36,92,113,0,11,114,93,72,92,115,116,0,10,117,118
  219. ,93,36,92,32,115
  220. 1570 DATA 119,120,33,121,122,118,32,93,36,92,0,12,93,36,92,0,12,93,123
  221. 1580 DATA 92,93,0,11,92,93,0,3,111,0,11,112,32,0,3,113,0,11,114,32,0,3,115,116,0
  222. ,10,117,118,32
  223. 1590 DATA 0,4,115,119,120,33,121,122,118,-1
  224.