home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / etronic2 / progr7.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1989-01-07  |  1.8 KB  |  41 lines

  1. 700  REM IMPEDANCE AND ANGLE THETA
  2. 701  CLS
  3. 702  PRINT "THIS PROGRAM WILL DETERMINE REACTANCE, IMPEDANCE AND THETA FOR EITHER"
  4. 703  PRINT "SERIES OR PARALLEL CIRCUITS WITH VARIOUS COMBINATIONS OF R, C OR L."
  5. 704  PRINT
  6. 705  PI = 3.14159
  7. 706  INPUT "ARE THE COMPONENTS IN SERIES (S) OR PARALLEL (P) ? ", A$
  8. 707  IF A$<>"s" AND A$<>"S" AND A$<>"P" AND A$ <>"p" THEN 706
  9. 708  PRINT
  10. 709  INPUT "IS THE CIRCUIT A RC, RL, OR RCL CIRCUIT ? ",B$
  11. 710  IF B$<>"rc" AND B$<>"RC" AND B$<>"RL" AND B$<>"RL" AND B$<>"RCL" AND B$<>"RCL" THEN 709
  12. 711  IF LEFT$(B$,2) = "RC" OR LEFT$(B$,2) = "rc" THEN CFLAG = 1
  13. 712  IF RIGHT$(B$,1) = "L" OR RIGHT$(B$,1) = "l" THEN LFLAG = 1
  14. 713  PRINT
  15. 714  PRINT "PLEASE ENTER ALL DATA IN BASE UNITS"
  16. 715  INPUT ; "THE FREQUENCY IS ? ", F : PRINT " HERTZ"
  17. 716  INPUT ; "THE RESISTANCE IS ? ", R : PRINT " OHMS"
  18. 717  IF LFLAG = 0 THEN 720
  19. 718  INPUT ; "THE INDUCTANCE IS ? ", L : PRINT " HENRIES"
  20. 719  IF CFLAG = O THEN 721
  21. 720  INPUT ; "THE CAPACITANCE IS ? ", C: PRINT " FARADS"
  22. 721  IF CFLAG = 1 THEN XC=1/(2*PI*F*C)
  23. 722  IF LFLAG = 1 THEN XL=2*PI*F*L
  24. 723  IF CFLAG = 1 AND LFLAG = 0 THEN X = XC
  25. 724  IF CFLAG = 0 AND LFLAG = 1 THEN X = XL
  26. 725  ON CFLAG + LFLAG GOSUB 733, 736
  27. 726  THETA = A*180/PI            ' CINVERTS RADIANS TO DEGREES
  28. 727  PRINT
  29. 728  PRINT "THE IMPEDENCE IS"; Z; " OHMS"
  30. 729  IF CFLAG = 1 AND LFLAG = 0 OR CFLAG + LFLAG = 2 AND (A$="P"OR A$="p" EQV XL>XC) THEN PRINT "I LEADS V BY"; THETA; " DEGREES." ELSE PRINT "V LEADS I BY"; THETA; "DEGREES."
  31. 730  IF CFLAG = 1 THEN PRINT "THE CAPACITIVE REACTANCE IS"; XC; " OHMS"
  32. 731  IF LFLAG = 1 THEN PRINT "THE INDUCTIVE REACTANCE IS"; XL; " OHMS"
  33. 732  GOTO 740
  34. 733  IF A$="s" OR A$="S" THEN Z = SQR(R*R+X*X) ELSE Z = R*X/SQR(R*R+X*X)
  35. 734  IF A$="s" OR A$="S" THEN A = ATN(X/R) ELSE A = ATN(R/X)
  36. 735  RETURN
  37. 736  IF A$="S" OR A$="s" THEN Z = SQR (R*R+(XL-XC)^2) ELSE Z = R*XL*XC/SQR((R*XL-R*XC)^2+XL*XL*XC*XC)
  38. 737  IF A$="S" OR A$="s" THEN A = ATN(ABS(XL-XC)/R) ELSE A=ATN(R*ABS(1/XL-1/XC))
  39. 738  RETURN
  40. 740  LOCATE 25,20: INPUT ; "MORE CALCULATIONS (Y/N) ",A$: IF A$="Y"OR A$="y" THEN RUN 700 ELSE IF A$="N" OR A$="n" THEN RUN "MENU1"
  41.