home *** CD-ROM | disk | FTP | other *** search
- 10 REM*** BYTE 'MAR 85
- 20 PRINT"[147] UNIT CONVERSION"
- 30 READND,NP,NU
- 40 DIMPR$(20),PR(20),PR%(20),UN$(100),UN(100),UN%(100,10)
- 50 DIMDE$(10),DI%(10)
- 53 DEFFNA(X)=INT(X*1E6+.5)/1E6
- 54 DEFFNB(X)=INT(X*1E7+.5)/1E7
- 55 FORX=0TONP:READPR$(X),PR(X),PR%(X):NEXTX
- 60 FORX=0TOND:READDE$(X):NEXTX
- 70 FORX=0TONU:READUN$(X),UN(X)
- 80 FORY=0TOND:READUN%(X,Y):NEXTY,X
- 90 REM***
- 100 REM
- 200 PRINT" TYPE 'HELP' FOR INSTRUCTIONS"
- 210 FORX=0TOND:DI%(X)=0:NEXTX
- 215 PRINT:I$="":PRINT"ENTER":INPUTI$:IFI$="HELP"THEN4000
- 220 IFLEFT$(I$,1)="?"THENI$=MID$(I$,2):GOTO230
- 225 GOTO300
- 230 IO=1:GOSUB1000
- 240 FL=0
- 242 FORX=0TOND:IFDI%(X)>1THENPRINTDE$(X)"^"MID$(STR$(DI%(X)),2)" ";:GOTO245
- 243 IFDI%(X)=1THENPRINTDE$(X)" ";:GOTO245
- 244 IFDI%(X)<0THENFL=1
- 245 NEXTX
- 250 IFFL=0THENPRINT:GOTO210
- 252 PRINT"PER ";:FORX=0TOND:IFDI%(X)<-1THENPRINTDE$(X)"^"MID$(STR$(-DI%(X)),2)" ";:GOTO255
- 253 IFDI%(X)=-1THENPRINTDE$(X)" ";
- 255 NEXTX:PRINT:GOTO210
- 300 N=VAL(I$):IFN=0THENPRINT"GIVE A NUMBER":GOTO210
- 305 X=1
- 310 IFMID$(I$,X,1)=" "ORX=LEN(I$)THEN320
- 311 X=X+1:GOTO310
- 320 X=X+1:I$=MID$(I$,X):IO=1:GOSUB1000
- 330 I$="":INPUT"CONVERT TO";I$:IO=-1:GOSUB1000
- 340 FL=0:FORX=0TOND:IFDI%(X)<>0THENPRINTDE%(X)" DIMENSION INCOMPATIBILITY":FL=1
- 350 NEXTX:IFFL=1THEN210
- 360 PRINT"ANSWER = ";:LO=INT(LOG(N)/LOG(10))+1
- 370 IFLO<=5ANDLO>=0THENPRINTFNA(N):GOTO210
- 375 IFLO=-1THENPRINTFNA(N):GOTO210
- 380 IFLO=-2THENPRINTFNB(N):GOTO210
- 390 PRINT".....";N:GOTO210
- 1000 DN=1
- 1010 IFLEFT$(I$,1)=" "THENI$=MID$(I$,2):GOTO1010
- 1020 IFI$=""THENRETURN
- 1030 FORX=1TOLEN(I$):IFMID$(I$,X,1)=" "THEN1040
- 1035 NEXTX
- 1040 T$=LEFT$(I$,X-1):I$=MID$(I$,X):T=1:P=1
- 1045 IFT$="PER"THENDN=-1:GOTO1010
- 1050 FORX=1TOLEN(T$):IFMID$(T$,X,1)="^"THEN1060
- 1055 NEXTX
- 1060 IFX>LEN(T$)THEN1100
- 1070 P=VAL(MID$(T$,X+1))
- 1080 IFP=0THENPRINT"POWER ERROR IN TERM"T$:GOTO210
- 1090 T$=LEFT$(T$,X-1)
- 1100 IFRIGHT$(T$,4)="CHES"THENT$=LEFT$(T$,LEN(T$)-2)
- 1102 IFRIGHT$(T$,3)="IES"THENT$=LEFT$(T$,LEN(T$)-3)+"Y"
- 1104 IFRIGHT$(T$,1)="S"ANDRIGHT$(T$,2)<>"SS"THENT$=LEFT$(T$,LEN(T$)-1)
- 1110 FORX=0TONU:IFT$=UN$(X)THEN1120
- 1112 NEXTX:GOTO1140
- 1120 N=N/((UN(X)/T)^(P*DN*IO))
- 1130 FORY=0TOND:DI%(Y)=DI%(Y)+P*DN*IO*UN%(X,Y):NEXTY:GOTO1010
- 1140 FORX=0TONP:IFLEFT$(T$,PR%(X))=PR$(X)THEN1150
- 1142 NEXTX:GOTO1170
- 1150 T$=MID$(T$,PR%(X)+1):T=T*PR(X):GOTO1110
- 1170 PRINT"UNDEFINED UNIT OR PREFIX IN ";T$:GOTO210
- 2040 FL=0
- 4000 PRINT"[147] HELP....."
- 4005 PRINT" THIS PROGRAM CONVERTS NUMBERS BETWEEN"
- 4010 PRINT" UNIT SYSTEMS SUCH AS METRIC & ENGLISH."
- 4015 PRINT"IT WILL ALSO EXPLAIN THE DIMENSIONALITY"
- 4020 PRINT"OF A UNIT OR COMBINATION IF DESIRED."
- 4025 PRINT" IF YOU ENTER '?' AS A PREFIX"
- 4030 PRINT"THEN THE DIMENTIONALITY WILL BE GIVEN."
- 4035 PRINT"THE FORMAT 'X UNITS PER UNITS PER UNITS..'"
- 4040 PRINT"WHERE X IS '?' OR A NUMBER"
- 4045 PRINT"SPACES MUST SEPERATE THE UNIT SPECIFIERS"
- 4050 PRINT"BUT MUST NOT APPEAR INSIDE THEM."
- 4055 PRINT"A UNIT SPEC IA AN OPTIONAL SET OF"
- 4060 PRINT"PREFIXES, A UNIT, AND AN":PRINT" OPTIONAL POWER TERM '^'"
- 4065 PRINT" PRESS KEY"
- 4070 GETA$:IFA$=""THEN4070
- 4080 PRINT"[147] VALID UNITS ARE":
- 4085 FORX=0TONUSTEP2:O$=UN$(X):O1$=UN$(X+1):PRINTO$,O1$:GOSUB4900:NEXTX
- 4090 PRINT" PRESS KEY"
- 4095 GETA$:IFA$=""THEN4095
- 4100 PRINT"[147] VALID PREFIXES ARE"
- 4105 FORX=0TONPSTEP2:O$=PR$(X):O1$=PR$(X+1):PRINTO$,O1$:GOSUB4900:NEXTX
- 4110 PRINT" PRESS KEY"
- 4115 GETA$:IFA$=""THEN4115
- 4120 PRINT"[147] A TYPICAL UNIT SPEC IS 'CENTIMETER^2'."
- 4125 PRINT"NOTE-MORE THAN ONE PREFIX IS ALLOWED."
- 4130 PRINT"EXAMPLES WOULD BE 'MILES PER HOUR'"
- 4135 PRINT"AND 'KILOGRAMS PER FOOT^2'"
- 4140 PRINT"EXAMPLES... (INPUTS AT RIGHT)"
- 4145 PRINT"ENTER?"
- 4150 PRINT,,"?MILES PER HOUR"
- 4155 PRINT"DISTANCE PER TIME"
- 4160 PRINT,,"?WATTS"
- 4165 PRINT"DISTANCE^2 MASS PER TIME^3"
- 4170 PRINT,,"8000 BTU PER HOUR"
- 4175 PRINT"CONVERT TO"
- 4180 PRINT,,"WATTS"
- 4185 PRINT"ANSWER = 2343.9"
- 4190 PRINT,,"1 ATMOSPHERE"
- 4195 PRINT"CONVERT TO"
- 4200 PRINT,"POUND-FORCE PER FOOT^2"
- 4205 PRINT"ANSWER = 2116.2"
- 4210 PRINT" PRESS KEY"
- 4215 GETA$:IFA$=""THEN4215
- 4220 GOTO210
- 4300 GOTO210
- 4900 IFX/32<>INT(X/32)ORX=0THENRETURN
- 4905 PRINT" PRESS KEY"
- 4910 GETA$:IFA$=""THEN4910
- 4920 PRINT"[147]":RETURN
- 5000 DATA5,13,84
- 5010 DATATERA,1E12,4
- 5020 DATAGIGA,1E9,4
- 5030 DATAMEGA,1E6,4
- 5040 DATAKILO,1E3,4
- 5050 DATAHECTO,1E2,5
- 5060 DATADECA,10,4
- 5070 DATADECI,.1,4
- 5080 DATACENTI,1E-2,5
- 5090 DATAMILLI,1E-3,5
- 5100 DATAMICRO,1E-6,5
- 5110 DATANANO,1E-9,4
- 5120 DATAPICO,1E-12,4
- 5130 DATAFEMTO,1E-15,5
- 5140 DATAATTO,1E-18,4
- 6010 DATADISTANCE,MASS,TIME,ANGLE,SOLID ANGLE,QUANITITY
- 7100 DATAMETER,1,1,0,0,0,0,0
- 7110 DATAINCH,39.370078,1,0,0,0,0,0
- 7120 DATAFOOT,3.2808398,1,0,0,0,0,0
- 7130 DATAFEET,3.2808398,1,0,0,0,0,0
- 7140 DATAYARD,1.0936132,1,0,0,0,0,0
- 7150 DATAMILE,6.2137119E-4,1,0,0,0,0,0
- 7160 DATAMICRON,1E6,1,0,0,0,0,0
- 7170 DATAANGSTROM,1E10,1,0,0,0,0,0
- 7180 DATAMIL,3.9370078E4,1,0,0,0,0,0
- 7190 DATALIGHTYEAR,1.0562667E-16,1,0,0,0,0,0
- 7200 DATAPARSEC,3.2454E-17,1,0,0,0,0,0
- 7210 DATAFURLONG,4.9709695E-3,1,0,0,0,0,0
- 7220 DATAFATHOM,.54680664,1,0,0,0,0,0
- 7230 DATAROD,.19883878,1,0,0,0,0,0
- 7240 DATALEAGUE,1.775E-4,1,0,0,0,0,0
- 7250 DATAACRE,2.4710536,2,0,0,0,0,0
- 7260 DATABARN,1E28,2,0,0,0,0,0
- 7270 DATACIRCULARMILL,1.974E9,2,0,0,0,0,0
- 7280 DATALITER,1000,3,0,0,0,0,0
- 7290 DATAGALLON,254.17205,3,0,0,0,0,0
- 7300 DATAQUART,1056.6882,3,0,0,0,0,0
- 7310 DATAPINT,2113.3764,3,0,0,0,0,0
- 7320 DATACUP,4226.7528,3,0,0,0,0,0
- 7330 DATAFLUID-OUNCE,3.3814022E4,3,0,0,0,0,0
- 7340 DATATABLESPOON,6.7628045E4,3,0,0,0,0,0
- 7350 DATATEASPOON,2.0288413E5,3,0,0,0,0,0
- 7360 DATABARREL,6.2898107,3,0,0,0,0,0
- 7370 DATAHOGSHEAD,4.1932071,3,0,0,0,0,0
- 7380 DATAGRAM,1000,0,1,0,0,0,0
- 7390 DATASLUG,6.852E-2,0,1,0,0,0,0
- 7400 DATAAMU,6.024E26,0,1,0,0,0,0
- 7410 DATATON,1.1023113E-3,0,1,0,0,0,0
- 7420 DATAPOUND,2.2046226,0,1,0,0,0,0
- 7430 DATAOUNCE,35.273961,0,1,0,0,0,0
- 7440 DATAGRAIN,15432.357,0,1,0,0,0,0
- 7450 DATATROY-OUNCE,32.150745,0,1,0,0,0,0
- 7460 DATASECOND,1,0,0,1,0,0,0
- 7470 DATAMINUTE,1.6666667E-2,0,0,1,0,0,0
- 7480 DATAHOUR,2.7777778E-4,0,0,1,0,0,0
- 7490 DATADAY,1.1574074E-5,0,0,1,0,0,0
- 7500 DATAWEEK,1.6534391E-6,0,0,1,0,0,0
- 7510 DATAMONTH,3.8580246E-7,0,0,1,0,0,0
- 7520 DATAFORTNIGHT,8.2671957E-7,0,0,1,0,0,0
- 7530 DATADECADE,3.1688E-9,0,0,1,0,0,0
- 7540 DATACENTURY,3.1688E-10,0,0,1,0,0,0
- 7550 DATAMILLENIUM,3.1688E-11,0,0,1,0,0,0
- 7560 DATAYEAR,3.1688E-8,0,0,1,0,0,0
- 7570 DATAEON,3.1688E-17,0,0,1,0,0,0
- 7580 DATARADIAN,1,0,0,0,1,0,0
- 7590 DATADEGREE,57.295779,0,0,0,1,0,0
- 7595 DATAARCMINUTE,3437.7467,0,0,0,1,0,0
- 7600 DATAARCSECOND,206264.8,0,0,0,1,0,0
- 7610 DATAGRAD,63.661977,0,0,0,1,0,0
- 7620 DATAREVOLUTION,.1591549,0,0,0,1,0,0
- 7630 DATASTERADIAN,1,0,0,0,0,1,0
- 7640 DATASPHERE,7.95774E-2,0,0,0,0,1,0
- 7650 DATACOULOMB,1,0,0,0,0,0,1
- 7660 DATAMOLE,1.0364E-5,0,0,0,0,0,1
- 7670 DATAUNIT,6.24E18,0,0,0,0,0,1
- 7680 DATAFARADAY,1.0364E-5,0,0,0,0,0,1
- 7690 DATAKNOT,1.944,1,0,-1,0,0,0
- 7700 DATANEWTON,1,1,1,-2,0,0,0
- 7710 DATADYNE,1E5,1,1,-2,0,0,0
- 7720 DATAPOUND-FORCE,.2248,1,1,-2,0,0,0
- 7730 DATAPOUNDAL,7.233,1,1,-2,0,0,0
- 7740 DATAGRAM-FORCE,102,1,1,-2,0,0,0
- 7750 DATAATMOSPHERE,9.869E-6,-1,1,-2,0,0,0
- 7760 DATABAR,1E-5,-1,1,-2,0,0,0
- 7770 DATABTU,9.481E-4,2,1,-2,0,0,0
- 7780 DATAERG,1E7,2,1,-2,0,0,0
- 7790 DATAJOULE,1,2,1,-2,0,0,0
- 7800 DATACALORIE,.2389,2,1,-2,0,0,0
- 7810 DATAELECTRONVOLT,6.242E18,2,1,-2,0,0,0
- 7820 DATAWATT,1,2,1,-3,0,0,0
- 7830 DATAHORSEPOWER,1.341E-3,2,1,-3,0,0,0
- 7840 DATAAMPERE,1,0,0,-1,0,0,1
- 7850 DATAVOLT,1,2,1,-2,0,0,-1
- 7860 DATAOHM,1,2,1,-1,0,0,-2
- 7870 DATAGAUSS,1E4,0,1,-1,0,0,-1
- 7880 DATAGAMMA,1E9,0,1,-1,0,0,-1
- 7890 DATATESLA,1,0,1,-1,0,0,-1
- 7900 DATAFARAD,1,-2,-1,2,0,0,2
- 7910 DATAHENRY,1,2,1,0,0,0,-2
- 7920 DATAWEBER,1,2,1,-1,0,0,-1
- 7930 DATAHERTZ,.1591549,0,0,-1,1,0,0
-