10 REM ****************************************************************** 20 REM * * 30 REM * PROGRAM NAME: RC5% * 40 REM * * 50 REM * COMPUTES THE NEAREST STANDARD VALUE OF 5% RESISTORS OR * 60 REM * CAPACITORS GIVEN A CALCULATED VALUE INPUT * 70 REM * BY: M.F. KAVANAUGH--BRADLEY UNIVERSITY * 80 REM * * 90 REM ****************************************************************** 100 PRINT:PRINT " DO YOU WISH:" 110 PRINT " (R)ESISTOR (1 OHM-100 MEG)" 120 PRINT " (C)APACITOR (1PF-1000 MFD)" 130 PRINT " (E)XIT" 140 PRINT:INPUT I$ 150 IF I$="R" GOTO 500 160 IF I$="C" GOTO 1000 170 IF I$="E" GOTO 9000 ELSE GOTO 100 500 REM 510 REM ********************* RESISTORS ********************************* 520 REM 530 T$="RESISTORS":GOSUB 1530 540 PRINT "ENTER THE RESISTOR VALUES USING THE POWER OF TEN FORMAT." 550 PRINT "ERRORS MAY BE CORRECTED AFTER ALL VALUES HAVE BEEN ENTERED." 560 FOR I=1 TO N:GOSUB 1640:PRINT:NEXT I 561 FOR I=1 TO N: V$(I)="":NEXT I 562 GOSUB 1570 590 FOR I= 1 TO N 600 IF V(I)>=1E+06 THEN V(I)=V(I)/1E+06:V$(I)="M":GOTO 630 610 IF V(I)>=1000! THEN V(I)=V(I)/1000:V$(I)="K":GOTO 630 620 V$(I)="OHMS" 630 NEXT I 632 GOSUB 1920 640 REM ***** DISPLAY STANDARD VALUE *************** 650 GOSUB 1750:GOTO 1820 1000 REM 1010 REM ******************* CAPACITORS ********************************** 1020 REM 1030 T$="CAPACITORS":GOSUB 1530 1040 PRINT "ENTER THE VALUE OF CAPACITOR,IN MFD.,USING THE POWER OF TEN FORMAT." 1050 PRINT "ERRORS MAY BE CORRECTED AFTER ALL THE VALUES HAVE BEEN ENTERED." 1060 FOR I=1 TO N:GOSUB 1640:PRINT:NEXT I 1061 FOR I= 1 TO N:V$(I)="":NEXT I 1062 GOSUB 1570 1090 FOR I=1 TO N:V(I)=V(I)*1E+06:NEXT I 1120 FOR I=1 TO N 1130 IF V(I)>=1000! THEN V(I)=V(I)/1E+06:V$(I)="MFD":GOTO 1150 1140 V$(I)="PF" 1150 NEXT I 1152 GOSUB 1920 1160 REM ***** DISPLAY STANDARD VALUES ************* 1170 GOSUB 1750 1180 GOTO 1820 1500 REM 1510 REM ******************** ENTER VALUES ******************************* 1520 REM 1530 PRINT:PRINT "NUMBER OF ";T$;" TO BE ENTERED:":INPUT N 1540 IF N<=100 GOTO 1550 1545 PRINT "100 MAX":GOTO 1530 1550 PRINT:RETURN 1560 REM ******** CHECK INPUT VALUES *************** 1570 GOSUB 1750 1580 INPUT "ARE THESE VALUES CORRECT (Y/N)";A$ 1590 IF A$="Y" THEN RETURN 1600 IF A$="N" GOTO 1610 ELSE 1580 1610 INPUT "ENTER COMPONENT VALUE TO BE CHANGED";I:PRINT 1620 GOSUB 1640:GOTO 1570 1630 REM ******* VALUE AND RANGE TEST ************** 1640 PRINT I$;I;"=":INPUT; V(I) 1650 IF I$="C" GOTO 1690 1660 IF V(I)<1 GOTO 1720 1670 IF V(I)>1E+08 GOTO 1730 1680 RETURN 1690 IF V(I)<.000001 GOTO 1720 1700 IF V(I)>1000! GOTO 1730 1710 RETURN 1720 PRINT:PRINT I$;I;" IS TOO SMALL":PRINT:GOTO 1640 1730 PRINT:PRINT I$;I;" IS TOO LARGE":PRINT:GOTO 1640 1740 REM ******** PUT VALUES ON TERMINAL *********** 1750 PRINT:FOR I=1 TO N STEP 4 1760 IF I<=N THEN PRINT TAB(2);I$;I;"=";V(I);V$(I); 1770 IF (I+1)<=N THEN PRINT TAB(20);I$;I+1;"=";V(I+1);V$(I+1); 1780 IF (I+2)<=N THEN PRINT TAB(38);I$;I+2;"=";V(I+2);V$(I+2); 1790 IF (I+3)<=N THEN PRINT TAB(56);I$;I+3;"=";V(I+3);V$(I+3) 1800 NEXT I:PRINT:RETURN 1810 REM ******* PUT VALUES ON A PRINTER *********** 1820 PRINT:INPUT "DO YOU WANT HARDCOPY (Y/N)";HC$ 1830 IF HC$="N" GOTO 100 1840 IF HC$<>"Y" GOTO 1820 1850 LPRINT: FOR I=1 TO N STEP 4 1860 IF I<=N THEN LPRINT TAB(2);I$;I;"=";V(I);V$(I); 1870 IF (I+1)<=N THEN LPRINT TAB(20);I$;I+1;"=";V(I+1);V$(I+1); 1880 IF (I+2)<=N THEN LPRINT TAB(38);I$;I+2;"=";V(I+2);V$(I+2); 1890 IF (I+3)<=N THEN LPRINT TAB(56);I$;I+3;"=";V(I+3);V$(I+3) 1900 NEXT I:LPRINT:RETURN 1910 REM ******* FIND STANDARD VALUES ************** 1920 PRINT:PRINT " CALCULATING STANDARD VALUES" 1930 FOR I=1 TO N:L=1 1940 IF V(I)>10 THEN L=L*10:V(I)=V(I)/10:GOTO 1940 1945 IF V(I)<1 THEN L=L/10:V(I)=V(I)*10:GOTO 1945 1950 READ D2 1960 D1=D2:READ D2:IF V(I)>D2 GOTO 1960 1970 MD=(D1+D2)/2:IF V(I)