home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Educational / UNIT-CONVERSION (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  6.3 KB  |  217 lines

  1. 10 REM*** BYTE 'MAR 85
  2. 20 PRINT"[147] UNIT CONVERSION"
  3. 30 READND,NP,NU
  4. 40 DIMPR$(20),PR(20),PR%(20),UN$(100),UN(100),UN%(100,10)
  5. 50 DIMDE$(10),DI%(10)
  6. 53 DEFFNA(X)=INT(X*1E6+.5)/1E6
  7. 54 DEFFNB(X)=INT(X*1E7+.5)/1E7
  8. 55 FORX=0TONP:READPR$(X),PR(X),PR%(X):NEXTX
  9. 60 FORX=0TOND:READDE$(X):NEXTX
  10. 70 FORX=0TONU:READUN$(X),UN(X)
  11. 80 FORY=0TOND:READUN%(X,Y):NEXTY,X
  12. 90 REM***
  13. 100 REM
  14. 200 PRINT" TYPE 'HELP' FOR INSTRUCTIONS"
  15. 210 FORX=0TOND:DI%(X)=0:NEXTX
  16. 215 PRINT:I$="":PRINT"ENTER":INPUTI$:IFI$="HELP"THEN4000
  17. 220 IFLEFT$(I$,1)="?"THENI$=MID$(I$,2):GOTO230
  18. 225 GOTO300
  19. 230 IO=1:GOSUB1000
  20. 240 FL=0
  21. 242 FORX=0TOND:IFDI%(X)>1THENPRINTDE$(X)"^"MID$(STR$(DI%(X)),2)" ";:GOTO245
  22. 243 IFDI%(X)=1THENPRINTDE$(X)" ";:GOTO245
  23. 244 IFDI%(X)<0THENFL=1
  24. 245 NEXTX
  25. 250 IFFL=0THENPRINT:GOTO210
  26. 252 PRINT"PER ";:FORX=0TOND:IFDI%(X)<-1THENPRINTDE$(X)"^"MID$(STR$(-DI%(X)),2)" ";:GOTO255
  27. 253 IFDI%(X)=-1THENPRINTDE$(X)" ";
  28. 255 NEXTX:PRINT:GOTO210
  29. 300 N=VAL(I$):IFN=0THENPRINT"GIVE A NUMBER":GOTO210
  30. 305 X=1
  31. 310 IFMID$(I$,X,1)=" "ORX=LEN(I$)THEN320
  32. 311 X=X+1:GOTO310
  33. 320 X=X+1:I$=MID$(I$,X):IO=1:GOSUB1000
  34. 330 I$="":INPUT"CONVERT TO";I$:IO=-1:GOSUB1000
  35. 340 FL=0:FORX=0TOND:IFDI%(X)<>0THENPRINTDE%(X)" DIMENSION INCOMPATIBILITY":FL=1
  36. 350 NEXTX:IFFL=1THEN210
  37. 360 PRINT"ANSWER = ";:LO=INT(LOG(N)/LOG(10))+1
  38. 370 IFLO<=5ANDLO>=0THENPRINTFNA(N):GOTO210
  39. 375 IFLO=-1THENPRINTFNA(N):GOTO210
  40. 380 IFLO=-2THENPRINTFNB(N):GOTO210
  41. 390 PRINT".....";N:GOTO210
  42. 1000 DN=1
  43. 1010 IFLEFT$(I$,1)=" "THENI$=MID$(I$,2):GOTO1010
  44. 1020 IFI$=""THENRETURN
  45. 1030 FORX=1TOLEN(I$):IFMID$(I$,X,1)=" "THEN1040
  46. 1035 NEXTX
  47. 1040 T$=LEFT$(I$,X-1):I$=MID$(I$,X):T=1:P=1
  48. 1045 IFT$="PER"THENDN=-1:GOTO1010
  49. 1050 FORX=1TOLEN(T$):IFMID$(T$,X,1)="^"THEN1060
  50. 1055 NEXTX
  51. 1060 IFX>LEN(T$)THEN1100
  52. 1070 P=VAL(MID$(T$,X+1))
  53. 1080 IFP=0THENPRINT"POWER ERROR IN TERM"T$:GOTO210
  54. 1090 T$=LEFT$(T$,X-1)
  55. 1100 IFRIGHT$(T$,4)="CHES"THENT$=LEFT$(T$,LEN(T$)-2)
  56. 1102 IFRIGHT$(T$,3)="IES"THENT$=LEFT$(T$,LEN(T$)-3)+"Y"
  57. 1104 IFRIGHT$(T$,1)="S"ANDRIGHT$(T$,2)<>"SS"THENT$=LEFT$(T$,LEN(T$)-1)
  58. 1110 FORX=0TONU:IFT$=UN$(X)THEN1120
  59. 1112 NEXTX:GOTO1140
  60. 1120 N=N/((UN(X)/T)^(P*DN*IO))
  61. 1130 FORY=0TOND:DI%(Y)=DI%(Y)+P*DN*IO*UN%(X,Y):NEXTY:GOTO1010
  62. 1140 FORX=0TONP:IFLEFT$(T$,PR%(X))=PR$(X)THEN1150
  63. 1142 NEXTX:GOTO1170
  64. 1150 T$=MID$(T$,PR%(X)+1):T=T*PR(X):GOTO1110
  65. 1170 PRINT"UNDEFINED UNIT OR PREFIX IN ";T$:GOTO210
  66. 2040 FL=0
  67. 4000 PRINT"[147] HELP....."
  68. 4005 PRINT" THIS PROGRAM CONVERTS NUMBERS BETWEEN"
  69. 4010 PRINT" UNIT SYSTEMS SUCH AS METRIC & ENGLISH."
  70. 4015 PRINT"IT WILL ALSO EXPLAIN THE DIMENSIONALITY"
  71. 4020 PRINT"OF A UNIT OR COMBINATION IF DESIRED."
  72. 4025 PRINT" IF YOU ENTER '?' AS A PREFIX"
  73. 4030 PRINT"THEN THE DIMENTIONALITY WILL BE GIVEN."
  74. 4035 PRINT"THE FORMAT 'X UNITS PER UNITS PER UNITS..'"
  75. 4040 PRINT"WHERE X IS '?' OR A NUMBER"
  76. 4045 PRINT"SPACES MUST SEPERATE THE UNIT SPECIFIERS"
  77. 4050 PRINT"BUT MUST NOT APPEAR INSIDE THEM."
  78. 4055 PRINT"A UNIT SPEC IA AN OPTIONAL SET OF"
  79. 4060 PRINT"PREFIXES, A UNIT, AND AN":PRINT" OPTIONAL POWER TERM '^'"
  80. 4065 PRINT" PRESS KEY"
  81. 4070 GETA$:IFA$=""THEN4070
  82. 4080 PRINT"[147] VALID UNITS ARE":
  83. 4085 FORX=0TONUSTEP2:O$=UN$(X):O1$=UN$(X+1):PRINTO$,O1$:GOSUB4900:NEXTX
  84. 4090 PRINT" PRESS KEY"
  85. 4095 GETA$:IFA$=""THEN4095
  86. 4100 PRINT"[147] VALID PREFIXES ARE"
  87. 4105 FORX=0TONPSTEP2:O$=PR$(X):O1$=PR$(X+1):PRINTO$,O1$:GOSUB4900:NEXTX
  88. 4110 PRINT" PRESS KEY"
  89. 4115 GETA$:IFA$=""THEN4115
  90. 4120 PRINT"[147] A TYPICAL UNIT SPEC IS 'CENTIMETER^2'."
  91. 4125 PRINT"NOTE-MORE THAN ONE PREFIX IS ALLOWED."
  92. 4130 PRINT"EXAMPLES WOULD BE 'MILES PER HOUR'"
  93. 4135 PRINT"AND 'KILOGRAMS PER FOOT^2'"
  94. 4140 PRINT"EXAMPLES... (INPUTS AT RIGHT)"
  95. 4145 PRINT"ENTER?"
  96. 4150 PRINT,,"?MILES PER HOUR"
  97. 4155 PRINT"DISTANCE PER TIME"
  98. 4160 PRINT,,"?WATTS"
  99. 4165 PRINT"DISTANCE^2 MASS PER TIME^3"
  100. 4170 PRINT,,"8000 BTU PER HOUR"
  101. 4175 PRINT"CONVERT TO"
  102. 4180 PRINT,,"WATTS"
  103. 4185 PRINT"ANSWER = 2343.9"
  104. 4190 PRINT,,"1 ATMOSPHERE"
  105. 4195 PRINT"CONVERT TO"
  106. 4200 PRINT,"POUND-FORCE PER FOOT^2"
  107. 4205 PRINT"ANSWER = 2116.2"
  108. 4210 PRINT" PRESS KEY"
  109. 4215 GETA$:IFA$=""THEN4215
  110. 4220 GOTO210
  111. 4300 GOTO210
  112. 4900 IFX/32<>INT(X/32)ORX=0THENRETURN
  113. 4905 PRINT" PRESS KEY"
  114. 4910 GETA$:IFA$=""THEN4910
  115. 4920 PRINT"[147]":RETURN
  116. 5000 DATA5,13,84
  117. 5010 DATATERA,1E12,4
  118. 5020 DATAGIGA,1E9,4
  119. 5030 DATAMEGA,1E6,4
  120. 5040 DATAKILO,1E3,4
  121. 5050 DATAHECTO,1E2,5
  122. 5060 DATADECA,10,4
  123. 5070 DATADECI,.1,4
  124. 5080 DATACENTI,1E-2,5
  125. 5090 DATAMILLI,1E-3,5
  126. 5100 DATAMICRO,1E-6,5
  127. 5110 DATANANO,1E-9,4
  128. 5120 DATAPICO,1E-12,4
  129. 5130 DATAFEMTO,1E-15,5
  130. 5140 DATAATTO,1E-18,4
  131. 6010 DATADISTANCE,MASS,TIME,ANGLE,SOLID ANGLE,QUANITITY
  132. 7100 DATAMETER,1,1,0,0,0,0,0
  133. 7110 DATAINCH,39.370078,1,0,0,0,0,0
  134. 7120 DATAFOOT,3.2808398,1,0,0,0,0,0
  135. 7130 DATAFEET,3.2808398,1,0,0,0,0,0
  136. 7140 DATAYARD,1.0936132,1,0,0,0,0,0
  137. 7150 DATAMILE,6.2137119E-4,1,0,0,0,0,0
  138. 7160 DATAMICRON,1E6,1,0,0,0,0,0
  139. 7170 DATAANGSTROM,1E10,1,0,0,0,0,0
  140. 7180 DATAMIL,3.9370078E4,1,0,0,0,0,0
  141. 7190 DATALIGHTYEAR,1.0562667E-16,1,0,0,0,0,0
  142. 7200 DATAPARSEC,3.2454E-17,1,0,0,0,0,0
  143. 7210 DATAFURLONG,4.9709695E-3,1,0,0,0,0,0
  144. 7220 DATAFATHOM,.54680664,1,0,0,0,0,0
  145. 7230 DATAROD,.19883878,1,0,0,0,0,0
  146. 7240 DATALEAGUE,1.775E-4,1,0,0,0,0,0
  147. 7250 DATAACRE,2.4710536,2,0,0,0,0,0
  148. 7260 DATABARN,1E28,2,0,0,0,0,0
  149. 7270 DATACIRCULARMILL,1.974E9,2,0,0,0,0,0
  150. 7280 DATALITER,1000,3,0,0,0,0,0
  151. 7290 DATAGALLON,254.17205,3,0,0,0,0,0
  152. 7300 DATAQUART,1056.6882,3,0,0,0,0,0
  153. 7310 DATAPINT,2113.3764,3,0,0,0,0,0
  154. 7320 DATACUP,4226.7528,3,0,0,0,0,0
  155. 7330 DATAFLUID-OUNCE,3.3814022E4,3,0,0,0,0,0
  156. 7340 DATATABLESPOON,6.7628045E4,3,0,0,0,0,0
  157. 7350 DATATEASPOON,2.0288413E5,3,0,0,0,0,0
  158. 7360 DATABARREL,6.2898107,3,0,0,0,0,0
  159. 7370 DATAHOGSHEAD,4.1932071,3,0,0,0,0,0
  160. 7380 DATAGRAM,1000,0,1,0,0,0,0
  161. 7390 DATASLUG,6.852E-2,0,1,0,0,0,0
  162. 7400 DATAAMU,6.024E26,0,1,0,0,0,0
  163. 7410 DATATON,1.1023113E-3,0,1,0,0,0,0
  164. 7420 DATAPOUND,2.2046226,0,1,0,0,0,0
  165. 7430 DATAOUNCE,35.273961,0,1,0,0,0,0
  166. 7440 DATAGRAIN,15432.357,0,1,0,0,0,0
  167. 7450 DATATROY-OUNCE,32.150745,0,1,0,0,0,0
  168. 7460 DATASECOND,1,0,0,1,0,0,0
  169. 7470 DATAMINUTE,1.6666667E-2,0,0,1,0,0,0
  170. 7480 DATAHOUR,2.7777778E-4,0,0,1,0,0,0
  171. 7490 DATADAY,1.1574074E-5,0,0,1,0,0,0
  172. 7500 DATAWEEK,1.6534391E-6,0,0,1,0,0,0
  173. 7510 DATAMONTH,3.8580246E-7,0,0,1,0,0,0
  174. 7520 DATAFORTNIGHT,8.2671957E-7,0,0,1,0,0,0
  175. 7530 DATADECADE,3.1688E-9,0,0,1,0,0,0
  176. 7540 DATACENTURY,3.1688E-10,0,0,1,0,0,0
  177. 7550 DATAMILLENIUM,3.1688E-11,0,0,1,0,0,0
  178. 7560 DATAYEAR,3.1688E-8,0,0,1,0,0,0
  179. 7570 DATAEON,3.1688E-17,0,0,1,0,0,0
  180. 7580 DATARADIAN,1,0,0,0,1,0,0
  181. 7590 DATADEGREE,57.295779,0,0,0,1,0,0
  182. 7595 DATAARCMINUTE,3437.7467,0,0,0,1,0,0
  183. 7600 DATAARCSECOND,206264.8,0,0,0,1,0,0
  184. 7610 DATAGRAD,63.661977,0,0,0,1,0,0
  185. 7620 DATAREVOLUTION,.1591549,0,0,0,1,0,0
  186. 7630 DATASTERADIAN,1,0,0,0,0,1,0
  187. 7640 DATASPHERE,7.95774E-2,0,0,0,0,1,0
  188. 7650 DATACOULOMB,1,0,0,0,0,0,1
  189. 7660 DATAMOLE,1.0364E-5,0,0,0,0,0,1
  190. 7670 DATAUNIT,6.24E18,0,0,0,0,0,1
  191. 7680 DATAFARADAY,1.0364E-5,0,0,0,0,0,1
  192. 7690 DATAKNOT,1.944,1,0,-1,0,0,0
  193. 7700 DATANEWTON,1,1,1,-2,0,0,0
  194. 7710 DATADYNE,1E5,1,1,-2,0,0,0
  195. 7720 DATAPOUND-FORCE,.2248,1,1,-2,0,0,0
  196. 7730 DATAPOUNDAL,7.233,1,1,-2,0,0,0
  197. 7740 DATAGRAM-FORCE,102,1,1,-2,0,0,0
  198. 7750 DATAATMOSPHERE,9.869E-6,-1,1,-2,0,0,0
  199. 7760 DATABAR,1E-5,-1,1,-2,0,0,0
  200. 7770 DATABTU,9.481E-4,2,1,-2,0,0,0
  201. 7780 DATAERG,1E7,2,1,-2,0,0,0
  202. 7790 DATAJOULE,1,2,1,-2,0,0,0
  203. 7800 DATACALORIE,.2389,2,1,-2,0,0,0
  204. 7810 DATAELECTRONVOLT,6.242E18,2,1,-2,0,0,0
  205. 7820 DATAWATT,1,2,1,-3,0,0,0
  206. 7830 DATAHORSEPOWER,1.341E-3,2,1,-3,0,0,0
  207. 7840 DATAAMPERE,1,0,0,-1,0,0,1
  208. 7850 DATAVOLT,1,2,1,-2,0,0,-1
  209. 7860 DATAOHM,1,2,1,-1,0,0,-2
  210. 7870 DATAGAUSS,1E4,0,1,-1,0,0,-1
  211. 7880 DATAGAMMA,1E9,0,1,-1,0,0,-1
  212. 7890 DATATESLA,1,0,1,-1,0,0,-1
  213. 7900 DATAFARAD,1,-2,-1,2,0,0,2
  214. 7910 DATAHENRY,1,2,1,0,0,0,-2
  215. 7920 DATAWEBER,1,2,1,-1,0,0,-1
  216. 7930 DATAHERTZ,.1591549,0,0,-1,1,0,0
  217.