10  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  **********************
11  REM
12  REM         AC-1:  COMPUTER AIDED PRACTICE IN EE AC ANALYSIS
13  REM
14  REM         36152 (A820) REV A -- 7/71
15  REM
16  REM ***  CONTRIBUTED PROGRAM  ***************************************
17  REM
100  PRINT "COMPUTER AIDED PRACTICE IN ANALYSIS OF SINGLE-FREQUENCY"
110  PRINT "SINE WAVES, COMPLEX POWER, POWER FACTOR, ETC;"
120  PRINT "  PREPARED BY C.M. SIEGEL, NOV.24, 1970 (REV. 12/3/70)."
140  PRINT ""
150  PRINT "LET CURRENT AND P.D. APPEAR AS FOLLOWS:"
160  PRINT "     P.D. = + + + + + + + "
170  PRINT "     CURRENT = * * * * * * * *"
200  GOSUB 5000
290  PRINT "EXPECTED ANSWERS WILL BE GIVEN IN (  )."
295  PRINT "  ALL ANGLES ARE MULTIPLES OF + OR - 5 DEGREES;"
296  PRINT "  SHOULD BE EXPRESSED IN THE RANGE, -180<ANGLE<=180."
300  DIM K$[37],L$[6],C$[9],D$[30],M$[32],F$[11]
310  DIM G$[12],H$[11],I$[17],J$[21]
320  K$="WHAT ARE THE POLAR COMPONENTS OF THE "
330  L$=" P.D. "
340  C$=" CURRENT "
350  D$=" REGARDED AS A SINE FUNCTION? "
360  M$=" REGARDED AS A COSINE FUNCTION? "
370  F$=" IMPEDANCE "
380  G$=" ADMITTANCE "
390  I$=" PHASE (DEGREES) "
400  J$=" AN INTEGER, 3 TO 10 "
410  H$=" MAGNITUDE "
420  PRINT ""
500  PRINT "1. ";K$
510  PRINT L$;D$
515  PRINT H$;
520  B1=A1
530  GOSUB 4000
540  PRINT I$;
550  B1=O1=P1*10
560  GOSUB 4000
570  PRINT "2. ";C$;D$
580  PRINT H$;
590  B1=A2
600  GOSUB 4000
610  PRINT I$;
620  B1=O2=P2*10
630  GOSUB 4000
700  PRINT "3. ";L$;M$
740  PRINT I$;
750  O=(P1-9)*10
760  GOSUB 3900
770  B1=O3=O
780  GOSUB 4000
790  PRINT "4. ";C$;M$
830  PRINT I$;
840  O=(P2-9)*10
850  GOSUB 3900
860  B1=O4=O
870  GOSUB 4000
900  PRINT "5. ";K$;F$;"(V/I)?"
910  PRINT H$;
920  B1=A=A1/A2
930  GOSUB 4000
940  PRINT I$;
950  O=(P1-P2)*10
960  GOSUB 3900
970  B1=O5=O
975  C1=COS(ABS(O)*ATN(1)/45)
976  C1=INT(1000*(C1+.0005))/1000
977  C2=SGN(O)*SQR(1-C1*C1)
980  GOSUB 4000
990  PRINT "AND ITS RECTANGULAR COMPONENTS,"
1000  PRINT "R = ";
1010  B1=A*C1
1020  GOSUB 4000
1030  PRINT " AND X = ";
1040  B1=A*C2
1050  GOSUB 4000
1060  PRINT "6. ";K$;G$;"(I/V)?"
1070  PRINT H$;
1080  B1=A=A2/A1
1090  GOSUB 4000
1100  PRINT I$;
1110  O=(P2-P1)*10
1120  GOSUB 3900
1130  B1=O6=O
1140  GOSUB 4000
1150  PRINT "AND ITS RECTANGULAR COMPONENTS,"
1160  PRINT "G = ";
1170  B1=A*C1
1180  GOSUB 4000
1190  PRINT " AND B = ";
1200  B1=A*(-1)*C2
1210  GOSUB 4000
1300  PRINT "AND WHAT ARE THE"
1310  PRINT "7.  POWER FACTOR";
1320  B1=P3=ABS(C1)
1325  P3=INT(1000*(P3+.0005))/1000
1330  GOSUB 4000
1350  PRINT "8.  VOLT-AMPERES";
1360  B1=A3=(A1*A2)/2
1370  GOSUB 4000
1380  PRINT "9.  AVERAGE POWER";
1390  B1=A4=A3*C1
1400  GOSUB 4000
1410  PRINT "10.  REACTIVE VOLT-AMPERES (ACCORDING TO V*CONJ I)";
1420  B1=A3*C2
1430  GOSUB 4000
1440  PRINT "11.  AVERAGE P.D.";
1450  B1=0
1460  GOSUB 4200
1470  PRINT "12.  AVERAGE CURRENT";
1480  GOSUB 4200
1490  PRINT "13.  RMS P.D.";
1500  B1=.707*A1
1510  GOSUB 4000
1520  PRINT "14.  RMS CURRENT";
1530  B1=.707*A2
1540  GOSUB 4000
1550  PRINT "15.  MAXIMUM INSTANTANEOUS POWER";
1560  B1=(1+C1)*A3
1570  GOSUB 4000
1580  PRINT "16.  MINIMUM INSTANTANEOUS POWER";
1590  B1=(-1+C1)*A3
1600  GOSUB 4000
1650  PRINT "RELATIVE TO THE P.D., WHAT ARE THE"
1660  PRINT "     17.  IN-PHASE RMS CURRENT";
1670  B1=.707*A2*C1
1680  GOSUB 4000
1690  PRINT "     18.  THE REACTIVE (I.E. QUADRATURE) RMS CURRENT";
1700  B1=-.707*A2*C2
1710  GOSUB 4000
1720  PRINT "RELATIVE TO THE CURRENT, WHAT ARE THE"
1730  PRINT "     19.  IN-PHASE RMS P.D.";
1740  B1=.707*A1*C1
1750  GOSUB 4000
1760  PRINT "     20.  REACTIVE (I.E. QUADRATURE) RMS P.D.";
1770  B1=.707*A1*C2
1780  GOSUB 4000
3850  GOTO 9900
3900  IF O<-176 THEN 3920
3910  GOTO 3930
3920  O=O+360
3930  IF O>180 THEN 3950
3940  GOTO 3960
3950  O=O-360
3960  RETURN 
4000  T=0
4010  INPUT B2
4015  IF B1=0 AND B2#0 AND T=0 THEN 4070
4016  IF B1=0 AND B2#0 AND T=1 THEN 4060
4017  IF B1=0 AND B2=0 THEN 4110
4020  IF ABS((B1-B2)/B1)>.05 THEN 4060
4030  IF ABS((B1-B2)/B1)<.02 THEN 4110
4040  PRINT "YOU ARE NOT FAR OFF; "
4050  GOTO 4070
4060  PRINT "TOO FAR WRONG; "
4070  T=T+1
4080  IF T=2 THEN 4120
4090  PRINT "-------TRY AGAIN.";
4100  GOTO 4010
4110  PRINT "CLOSE ENOUGH, ";
4120  PRINT "(";B1;")"
4125  PRINT 
4130  RETURN 
4200  INPUT B2
4210  IF B2=0 THEN 4240
4220  PRINT "YOU SHOULD HAVE WRITTEN 0"
4230  GOTO 4250
4240  GOSUB 4110
4250  RETURN 
5000  GOSUB 5290
5010  A1=A
5020  P1=P
5030  E1=E
5040  GOSUB 5290
5050  A2=A
5060  P2=P
5070  E2=E
5080  P9=(2/9)*ATN(1)
5090  DIM A$[39],B$[39],Z$[39]
5100  A$="  ^                                    "
5110  B$=" 0^--'--'--^--'--'--^--'--'--^--'--'--^"
5120  PRINT ""
5130  FOR H=10 TO -10 STEP -1
5140  Z$=A$
5150  IF H#10 THEN 5170
5160  Z$[1,3]="10-"
5170  IF H#5 THEN 5190
5180  Z$[1,3]=" 5-"
5190  IF H#0 THEN 5210
5200  Z$=B$
5210  IF H#-5 THEN 5230
5220  Z$[1,3]="-5-"
5230  IF H#-10 THEN 5250
5240  Z$[1,3]="  -"
5250  S=3
5260  S1=1
5270  FOR J=3 TO 39
5280  GOTO 5400
5290  A=INT(7*RND(8)+3.99)
5300  P=(INT(71*RND(8)+.99)-35)/2
5310  IF INT(P)#P THEN 5360
5320  E=SGN(A-5.5)*.075+.275
5330  IF A#7 THEN 5390
5340  E=.4
5350  GOTO 5390
5360  E=SGN(ABS(A-5.5)-2)*.025+.225
5370  IF A=6 THEN 5290
5380  IF A=8 THEN 5290
5390  RETURN 
5400  IF ABS(A1*SIN(P9*(J+P1-3))-H)<E1 THEN 5450
5410  IF ABS(A2*SIN(P9*(J+P2-3))-H)<E2 THEN 5430
5420  GOTO 5460
5430  GOSUB 5550
5440  GOTO 5460
5450  GOSUB 5570
5460  REM
5470  NEXT J
5480  REM
5490  IF H#0 THEN 5520
5500  PRINT Z$[1,39]
5510  GOTO 5530
5520  PRINT Z$[S1,S]
5530  NEXT H
5540  GOTO 5610
5550  E$="*"
5560  GOTO 5580
5570  E$="+"
5580  Z$[J,J]=E$
5590  S=J
5600  RETURN 
5610  RETURN 
9900  END 
