home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib24a.dsk
/
MAY.1985
/
UNIT.CONVERT.bas
< prev
Wrap
BASIC Source File
|
2023-02-26
|
5KB
|
85 lines
10 REM **********************
20 REM * UNIT.CONVERT *
30 REM * BY LEE REYNOLDS *
40 REM * COPYRIGHT (C) 1985 *
50 REM * BY MICROSPARC, INC *
60 REM * CONCORD, MA 01742 *
70 REM **********************
80 REM UNIT CONVERSION PROGRAM
90 REM LENGTH UNITS CONVERSION FACTORS
100 REM IN TERMS OF AN INCH
110 DATA .001,.3937,1,12,36,39.37,72,198,7920,39370,63360,72913.39,190080
120 REM AREA UNITS CONVERSION FACTORS
130 REM IN TERMS OF A SQ. IN.
140 DATA .1550003,1,144,1296,1550.003,39204,6272640,15500031,4014489600
150 REM WEIGHT UNITS CONVERSION FACTORS
160 REM IN TERMS OF GRAINS
170 DATA .01543236,1,3.086,15.43236,24,27.34375,437.5,480,5760,7000,15432.36,11520000
180 REM LIQUID CAPACITY CONVERSION FACTORS IN TERMS OF DRAMS
190 DATA 1,1.333333,4,8,64,128,256,270.51218,1024,7660.052
200 REM DRY CAPACITY CONVERSION FACTORS IN TERMS OF PINTS
210 DATA .0297616,1,1.816166,2,16,64
220 DIM LNGTH(13),AREA(9),WEIGHT(12)
230 DIM LIQCAP(10),DRYCAP(6)
240 : FOR I = 1 TO 13: READ LNGTH(I): NEXT
250 FOR I = 1 TO 9: READ AREA(I): NEXT
260 FOR I = 1 TO 12: READ WEIGHT(I): NEXT
270 FOR I = 1 TO 10: READ LIQCAP(I): NEXT
280 FOR I = 1 TO 6: READ DRYCAP(I): NEXT
290 HOME : HTAB 7: VTAB 3: PRINT "UNIVERSAL METRIC CONVERSION": HTAB 12: PRINT "BY LEE REYNOLDS": PRINT
300 PRINT "** COPYRIGHT 1985 BY MICROSPARC,INC. **"
310 VTAB 10: PRINT "ENTER:": PRINT TAB( 7);"0 TO END PROGRAM": PRINT TAB( 7);"1 FOR UNITS OF LENGTH"
320 PRINT TAB( 7);"2 FOR UNITS OF AREA": PRINT TAB( 7);"3 FOR UNITS OF WEIGHT"
330 PRINT TAB( 7);"4 FOR UNITS OF LIQUID CAPACITY": PRINT TAB( 7);"5 FOR UNITS OF DRY CAPACITY"
340 INPUT OPT$:OPT = VAL(OPT$): IF OPT <0 OR OPT >5 THEN 310
350 IF OPT = 0 THEN 850
360 HOME : ON OPT GOSUB 700,740,770,800,830
370 HOME : GOTO 310
380 REM SUBROUTINE TO GET UNIT FROM
390 VTAB 19: CALL -868
400 INPUT "UNIT FROM INDEX? ";X$:X = VAL(X$)
410 GOSUB 530: IF X <0 THEN 390
420 U1 = X: RETURN
430 REM SUBROUTINE TO GET UNIT TO
440 VTAB 20: CALL -868
450 INPUT "UNIT TO INDEX? ";X$:X = VAL(X$)
460 GOSUB 530: IF X <0 THEN 440
470 U2 = X: RETURN
480 REM SUBROUTINE TO GET VALUE TO CONVERT
490 VTAB 21: CALL -868
500 INPUT "VALUE TO CONVERT? (0=NEW UNITS) ";X$:X = VAL(X$):MAX = 99999: GOSUB 530: IF X <0 THEN 490
510 NUM = X: RETURN
520 REM SUBROUTINE TO TEST DATA INPUT
530 VTAB 23: CALL -868: IF X < = 0 THEN RETURN
540 IF X >MAX THEN X = -1: REM SIGNAL ERROR
550 RETURN
560 REM SUBROUTINE TO PRINT ERR MSG
570 VTAB 23: PRINT "INVALID DATA!":X = -1: RETURN
580 REM SUBROUTINE TO CONVERT VALUE,ETC
590 ON OPT GOTO 600,610,620,630,640
600 CUNV = NUM *LNGTH(U1)/LNGTH(U2): GOTO 650
610 CUNV = NUM *AREA(U1)/AREA(U2): GOTO 650
620 CUNV = NUM *WEIGHT(U1)/WEIGHT(U2): GOTO 650
630 CUNV = NUM *LIQCAP(U1)/LIQCAP(U2): GOTO 650
640 CUNV = NUM *DRYCAP(U1)/DRYCAP(U2)
650 VTAB 22: CALL -868: PRINT "CONVERTED VALUE: ";CUNV: RETURN
660 GOSUB 390: IF U1 = 0 THEN RETURN
670 GOSUB 440: IF U2 = 0 THEN RETURN
680 GOSUB 490: IF NUM = 0 THEN RETURN
690 GOSUB 590: GOTO 680
700 PRINT "LENGTH UNITS CONVERSION": PRINT " 0 -- EXIT FROM LENGTH UNITS": PRINT " 1 -- MILS": PRINT " 2 -- CENTIMETERS": PRINT " 3 -- INCHES"
710 PRINT " 4 -- FEET": PRINT " 5 -- YARDS": PRINT " 6 -- METERS": PRINT " 7 -- FATHOMS": PRINT " 8 -- RODS"
720 PRINT " 9 -- FURLONGS": PRINT "10 -- KILOMETERS": PRINT "11 -- STATUTE MILES": PRINT "12 -- NAUTICAL MILES"
730 PRINT "13 -- LEAGUES":MAX = 13: GOSUB 660: RETURN
740 PRINT "AREA UNITS CONVERSION": PRINT " 0 -- EXIT FROM AREA UNITS": PRINT " 1 -- SQ. CENTIMETERS": PRINT " 2 -- SQ. INCHES"
750 PRINT " 3 -- SQ. FEET": PRINT " 4 -- SQ. YARDS": PRINT " 5 -- SQ. METERS": PRINT " 6 -- SQ. RODS": PRINT " 7 -- ACRES"
760 PRINT " 8 -- HECTARES": PRINT " 9 -- SQ. MILES":MAX = 9: GOSUB 660: RETURN
770 PRINT "WEIGHT UNITS CONVERSION": PRINT " 0 -- EXIT FROM WEIGHT UNITS": PRINT " 1 -- MILLIGRAMS": PRINT " 2 -- GRAINS"
780 PRINT " 3 -- CARATS": PRINT " 4 -- GRAMS": PRINT " 5 -- PENNYWEIGHTS": PRINT " 6 -- DRAMS AVDP.": PRINT " 7 -- OUNCES AVDP."
790 PRINT " 8 -- OUNCES TROY": PRINT " 9 -- POUNDS TROY": PRINT "10 -- POUNDS AVDP.": PRINT "11 -- KILOGRAMS": PRINT "12 -- TONS":MAX = 12: GOSUB 660: RETURN
800 PRINT "LIQUID CAPACITY CONVERSION": PRINT " 0 -- EXIT FROM LIQUID CAPACITY": PRINT " 1 -- DRAMS": PRINT " 2 -- TEASPOONS": PRINT " 3 -- TABLESPOONS"
810 PRINT " 4 -- OUNCES": PRINT " 5 -- CUPS": PRINT " 6 -- PINTS": PRINT " 7 -- QUARTS": PRINT " 8 -- LITERS"
820 PRINT " 9 -- GALLONS": PRINT "10 -- CUBIC FEET":MAX = 10: GOSUB 660: RETURN
830 PRINT "DRY CAPACITY CONVERSION": PRINT " 0 -- EXIT FROM DRY CAPACITY": PRINT " 1 -- CUBIC INCHES": PRINT " 2 -- PINTS": PRINT " 3 -- LITERS"
840 PRINT " 4 -- QUARTS": PRINT " 5 -- PECKS": PRINT " 6 -- BUSHELS":MAX = 6: GOSUB 660: RETURN
850 END