home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-05-24 | 4.5 KB | 158 lines |
- 10 '**************************************************************************
- 20 '
- 30 ' 1% PRECISION RESISTOR FINDING PROGRAM
- 40 '
- 50 '
- 60 '
- 70 '**************************************************************************
- 80 '
- 90 CLS
- 91 GOSUB 1400
- 92 LOCATE 1,1
- 100 PRINT"*****************************************************"
- 110 PRINT:PRINT" 1% PRECISION RESISTOR FINDING PROGRAM"
- 120 PRINT:PRINT"*****************************************************"
- 130 PRINT:PRINT
- 140 PRINT "THIS PROGRAM WILL FIND THE TWO CLOSEST VALUES OF"
- 150 PRINT "THE 96 STANDARD 1% RRESISTOR DECADE, TO GENERATE"
- 160 PRINT "A SPECCIFIED VOLTAGE ('V3') DETERMINED BY THE"
- 170 PRINT "GIVEN STRING VOLTAGE ('V1' &'V2'). IT WILL ASK"
- 180 PRINT "YOU FOR THE STRING VOLTAGES, AND WHAT THE"
- 190 PRINT "GENERATED (V3) VOLTAGE THAT YOU WISH TO OBTAIN"
- 200 PRINT"IS. IN ALL CASES, V1 SHOULD BE GIVEN AS THE MOST"
- 210 PRINT"POSITIVE. V2 THE MOST NEGATIVE, AND V3 ANYWHERE"
- 220 PRINT"BETWEEN THE TWO. "
- 230 PRINT" R1 AND R2 WILL CONTINUALLY BE DISPLAYED "
- 240 PRINT"DURING THE COURSE OF COMPUTATION, AS THE"
- 250 PRINT"TWO CLOSEST VALUES FOUND UP TO THAT TIME.."
- 260 PRINT" R1 IS THE RESISTOR TIED TO THE MOST POSITIVE VOLTAGE,"
- 270 PRINT"AND R2 IS THE RESISTOR TIED TO MOST NEGATIVE VOLTAGE."
- 280 PRINT:PRINT
- 290 INPUT"TYPE <RETURN> TO CONTINUE . . .";BG$
- 295 SCREEN 0
- 300 FOR J=1 TO 5:PRINT:NEXT J
- 310 DIM D(96)
- 320 DIM F(96)
- 330 INPUT"INPUT V1 (MOST POSITIVE STRING VOLTAGE): ";V1
- 340 INPUT"INPUT V2 (POST NEGATIVE STRING VOLTAGE): ";V2
- 350 IF V2>=V1 THEN 1310
- 360 INPUT"INPUT V3 (DESIRED GENERATED VOLTAGE): ";V3
- 370 IF V3=<V2 OR V3>=V1 THEN 1330
- 380 X=((V1-V2)-V3+V2)/(V3-V2)
- 390 PRINT "RATIO FOR COMPUTATION =";X
- 400 ' 'T' IS 1 IF R1>R2;T=2 IF R1<R2
- 410 IF X<1 THEN 440
- 420 T=1
- 430 GOTO 450
- 440 T=2
- 450 ' T=1 IF R1>R2 : T=2 IF R2>R1
- 460 FOR I=1 TO 96
- 470 READ D(I)
- 480 NEXT I
- 490 RESTORE
- 500 FOR I=1 TO 96
- 510 READ F(I)
- 520 NEXT I
- 530 R1=1
- 540 R2=1
- 550 IF X>1 THEN 580
- 560 A1=1
- 570 GOTO 590
- 580 A1=X
- 590 FOR I=1 TO 96
- 600 IF Y=0 THEN 690
- 610 FOR W=1 TO 5:PRINT:NEXT W
- 620 PRINT Y "OUT OF 96 COMPUTATIONS DONE: BEST SO FAR ARE:"
- 630 M$="*************************************************"
- 640 PRINT M$
- 650 PRINT "R1=";R1", & R2=";R2
- 660 PRINT "RATIO OF R1/R2="R1/R2 ": : DESIRED RATIO IS "X"."
- 670 PRINT M$
- 680 PRINT TAB(30);"PLEASE HOLD. . ."
- 690 Y =Y+1
- 700 FOR M=1 TO 96
- 710 IF T=1 THEN 740
- 720 Z=F(M)
- 730 GOTO 750
- 740 Z=D(I)
- 750 IF X>9.76 THEN 780
- 760 IF X<0.102459 THEN 780
- 770 GOTO 870
- 780 IF X>976 THEN 860
- 790 IF X<0.00102459 THEN 860
- 800 Z=10*Z
- 810 GOTO 870
- 820 IF X>976 THEN 860
- 830 IF X<0.00102459 THEN 860
- 840 Z=100*Z
- 850 GOTO 870
- 860 Z=1000*Z
- 870 IF T=1 THEN 900
- 880 A2=D(I)/Z
- 890 GOTO 910
- 900 A2=Z/F(M)
- 910 A3=ABS (A2-X)
- 920 IF A3>A1 THEN 1000
- 930 A1=A3
- 940 IF T=1 THEN 980
- 950 R1=D(I)
- 960 R2=Z
- 970 GOTO 1000
- 980 R1=Z
- 990 R2=F(M)
- 1000 NEXT M
- 1010 NEXT I
- 1020 PRINT "DESIRED R1/R2 RATIO WAS ";X
- 1030 PRINT"THE BEST THAT I CAN DO FOR YOU WITH"
- 1040 PRINT"THE STANDARD 96 1% RESISTER VALUES"
- 1050 PRINT"ARE:"
- 1060 PRINT"R1= ";R1" OHMS"
- 1070 PRINT"R2= ";R2" OHMS"
- 1080 PRINT"RATIO OF R1/R2 = ";R1/R2
- 1090 PRINT"FOR V1="V1 "VOLTS;V2="V2 "VOLTS; &V3="V3" VOLTS."
- 1100 PRINT"******************************************************"
- 1110 PRINT"* *"
- 1120 PRINT"********* USE R1="R1" OHMS, & R2="R2" OHMS! ********"
- 1130 PRINT"* *"
- 1140 PRINT"******************************************************"
- 1150 PRINT"RESULTS IF R1=" R1 ", AND IF R2=" R2 "IS:"
- 1160 PRINT"V3 WILL BE: "(((V1-V2)*R2)/(R1+R2))+V2 "VOLTS!!"
- 1170 PRINT""
- 1180 ' SOUND ROUTINE: FINISHED CALCLULATIONS
- 1190 PRINT"CALCULATIONS COMPLETED. "
- 1200 PRINT CHR$(7);:FOR T=1 TO 1000:NEXT:GOTO 1200
- 1210 END
- 1220 DATA 1.00,1.02,1.05,1.07,1.10,1.13,1.15,1.18,1.21,1.24
- 1230 DATA 1.27,1.30,1.33,1.37,1.40,1.43,1.47,1.50,1.54,1.58
- 1240 DATA 1.62,1.65,1.69,1.74,1.78,1.82,1.87,1.91,1.96,2.00
- 1250 DATA 2.05,2.10,2.15,2.21,2.26,2.32,2.37,2.43,2.49,2.55
- 1260 DATA 2.61,2.67,2.74,2.80,2.87,2.94,3.01,3.09,3.16,3.24,3.32
- 1270 DATA 3.40,3.48,3.57,3.65,3.74,3.83,3.92,4.02,4.12,4.22,4.32,4.42
- 1280 DATA 4.53,4.64,4.75,4.87,4.99,5.11,5.23,5.36,5.49,5.62,5.76,5.90
- 1290 DATA 6.04,6.19,6.34,6.49,6.65,6.81,6.98,7.15,7.32,7.50,7.68,7.87
- 1300 DATA 8.06,8.25,8.45,8.66,8.87,9.09,9.31,9.53,9.76
- 1310 PRINT:PRINT"V1 MUST BE THE MOST POSITIVE VOLTAGE, AND"
- 1320 PRINT"V2 MUST BE THE MOST NEGATIVE VOLTAGE!PLEASE RE-INPUT:":PRINT:GOTO 330
- 1330 PRINT:PRINT"V3 IS THE DESIRED GENERATED VOLTAGE DETERMINED BY R1 AND R2,"
- 1340 PRINT"AND MUST LIE BETWEEN V1 AND V2!"
- 1350 PRINT" PLESASE RE-ENTER DSIRED V3 VOLTAGE:":PRINT:GOTO 330
- 1400 SCREEN 2
- 1410 CIRCLE (450,5),5
- 1420 PSET (450,7.5)
- 1430 DRAW "C2;D10;C1;F3;G5;F5;G5;F3;C2;D10"
- 1440 CIRCLE (450,52),5
- 1450 PSET (450,55)
- 1460 DRAW "D10 F3 G5 F5 G5 F4 D 10"
- 1470 CIRCLE (450,100),5
- 1480 LOCATE 1,60
- 1490 PRINT "V1"
- 1500 LOCATE 4,60:PRINT "R1"
- 1510 LOCATE 10,60:PRINT "R2"
- 1520 LOCATE 13,60:PRINT "V2"
- 1530 PSET (456,52)
- 1540 DRAW "R20"
- 1550 CIRCLE (480,52),5
- 1560 LOCATE 7,64
- 1570 PRINT "V3"
- 1580 RETURN
-