home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1989-01-22 | 6.6 KB | 127 lines |
- 10 PRINT CHR$(26): PRINT "S-YZHT PROGRAM BY A. KATZ, TSC V1.2 2/17/86
- 30 DIM SR(2,2), SX(2,2), SM(2,2), SA(2,2), ZR(2,2), ZX(2,2)
- 40 DIM ZM(2,2), ZA(2,2), YR(2,2), YX(2,2), YM(2,2), YA(2,2)
- 50 DIM HR(2,2), HX(2,2), HM(2,2), HA(2,2): PI=4*ATN(1): DG=180/PI: Z0=50
- 55 DIM TR(2,2), TX(2,2), TM(2,2), TA(2,2)
- 60 REM COMPLEX ARITHMATIC SUBROUTEENS
- 70 DEF FNMR(AR,AX,BR,BX)=AR*BR-AX*BX
- 80 DEF FNMX(AR,AX,BR,BX)=AR*BX+AX*BR
- 90 DEF FNDR(AR,AX,BR,BX)=(AR*BR+AX*BX)/(BR^2+BX^2)
- 100 DEF FNDX(AR,AX,BR,BX)=(AX*BR-AR*BX)/(BR^2+BX^2)
- 110 DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
- 120 DEF FNAG(AR,AX)=DG*(ATN(AX/AR)-(SGN(AR)-1)*PI/2)
- 140 DEF FNR(MG,AG)=MG*COS(AG/DG)
- 150 DEF FNX(MG,AG)=MG*SIN(AG/DG)
- 160 REM PARAMERER CONVERSION PROGRAM
- 170 PRINT: PRINT "PROGRAM FOR CALCULATING T, Z, Y, AND H FROM S PARAMETERS"
- 180 PRINT "ANGLES IN DEGREES": PRINT
- 190 INPUT "PARAMETER FORM = ('POL' OR 'RECT' OR 'FILE')"; Q$: PRINT
- 200 IF Q$="POL" THEN 210 ELSE IF Q$="RECT" THEN 270 ELSE IF Q$="FILE" THEN 202 ELSE 190
- 202 PRINT: INPUT "PARAMETER FILE NAME"; F$: PRINT: F$=F$+".S"
- 205 OPEN "I",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: INPUT#1,SR(I,J),SX(I,J),SM(I,J),SA(I,J): NEXT J: NEXT I: CLOSE#1: GOTO 330
- 210 FOR I=1 TO 2: FOR J=1 TO 2
- 220 PRINT "MAG OF S("; I; ","; J; ")=";: INPUT SM(I,J)
- 230 PRINT "ANG OF S("; I; ","; J; ")=";: INPUT SA(I,J)
- 240 SR(I,J)=FNR(SM(I,J),SA(I,J)): PRINT "REAL S("; I; ","; J; ")="; SR(I,J)
- 250 SX(I,J)=FNX(SM(I,J),SA(I,J)): PRINT "IMAG. S("; I; ","; J; ")="; SX(I,J)
- 260 PRINT: NEXT: NEXT: GOTO 330
- 270 FOR I=1 TO 2: FOR J=1 TO 2
- 280 PRINT "REAL OF S("; I; ","; J; ")=";: INPUT SR(I,J)
- 290 PRINT "IMG OF S("; I; ","; J; ")=";: INPUT SX(I,J)
- 300 SM(I,J)=FNMG(SR(I,J),SX(I,J)): PRINT "MAG S("; I; ","; J; ")="; SM(I,J)
- 310 SA(I,J)=FNAG(SR(I,J),SX(I,J)): PRINT "ANGLE S("; I; ","; J; ")="; SA(I,J)
- 320 PRINT: NEXT: NEXT
- 330 PRINT: INPUT "CONVERT S TO (T, Z, Y OR H)"; Q$
- 340 IF Q$="END" THEN END
- 350 IF Q$="Z" THEN 360 ELSE IF Q$="Y" THEN 550 ELSE IF Q$="H" THEN 740 ELSE IF Q$="T" THEN 950 ELSE 330
- 355 REM Z PARAMETER CONVERSION CALC
- 360 NR=FNMR((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 370 NX=FNMX((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 380 DR=FNMR((1-SR(1,1)),-SX(1,1),(1-SR(2,2)),-SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 390 DX=FNMX((1-SR(1,1)),-SX(1,1),(1-SR(2,2)),-SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 400 ZR(1,1)=Z0*FNDR(NR,NX,DR,DX): ZX(1,1)=Z0*FNDX(NR,NX,DR,DX)
- 410 NR=2*SR(1,2): NX=2*SX(1,2)
- 420 ZR(1,2)=Z0*FNDR(NR,NX,DR,DX): ZX(1,2)=Z0*FNDX(NR,NX,DR,DX)
- 430 NR=2*SR(2,1): NX=2*SX(2,1)
- 440 ZR(2,1)=Z0*FNDR(NR,NX,DR,DX): ZX(2,1)=Z0*FNDX(NR,NX,DR,DX)
- 450 NR=FNMR((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 460 NX=FNMX((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 470 ZR(2,2)=Z0*FNDR(NR,NX,DR,DX): ZX(2,2)=Z0*FNDX(NR,NX,DR,DX)
- 480 FOR I=1 TO 2: FOR J=1 TO 2: PRINT
- 490 PRINT "REAL Z("; I; ","; J; ")="; ZR(I,J)
- 500 PRINT "IMG Z("; I; ","; J; ")="; ZX(I,J)
- 510 ZM(I,J)=FNMG(ZR(I,J),ZX(I,J)): ZA(I,J)=FNAG(ZR(I,J),ZX(I,J))
- 520 PRINT "MAG Z("; I; ","; J; ")="; ZM(I,J)
- 530 PRINT "ANG Z("; I; ","; J; ")="; ZA(I,J): NEXT: NEXT
- 532 PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
- 534 IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".Z"
- 536 OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,ZR(I,J),ZX(I,J),ZM(I,J),ZA(I,J): NEXT J: NEXT I
- 538 CLOSE #1: GOTO 330
- 540 REM Y PARAMETER CALC
- 550 NR=FNMR((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 560 NX=FNMX((1+SR(2,2)),SX(2,2),(1-SR(1,1)),-SX(1,1))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 570 DR=FNMR((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 580 DX=FNMX((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 590 YR(1,1)=FNDR(NR,NX,DR,DX)/Z0: YX(1,1)=FNDX(NR,NX,DR,DX)/Z0
- 600 NR=-2*SR(1,2): NX=-2*SX(1,2)
- 610 YR(1,2)=FNDR(NR,NX,DR,DX)/Z0: YX(1,2)=FNDX(NR,NX,DR,DX)/Z0
- 620 NR=-2*SR(2,1): NX=-2*SX(2,1)
- 630 YR(2,1)=FNDR(NR,NX,DR,DX)/Z0: YX(2,1)=FNDX(NR,NX,DR,DX)/Z0
- 640 NR=FNMR((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 650 NX=FNMX((1+SR(1,1)),SX(1,1),(1-SR(2,2)),-SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 660 YR(2,2)=FNDR(NR,NX,DR,DX)/Z0: YX(2,2)=FNDX(NR,NX,DR,DX)/Z0
- 670 FOR I=1 TO 2: FOR J=1 TO 2: PRINT
- 680 PRINT "REAL Y("; I; ","; J; ")="; YR(I,J)
- 690 PRINT "IMG Y("; I; ","; J; ")="; YX(I,J)
- 700 YM(I,J)=FNMG(YR(I,J),YX(I,J)): YA(I,J)=FNAG(YR(I,J),YX(I,J))
- 710 PRINT "MAG Y("; I; ","; J; ")="; YM(I,J)
- 720 PRINT "ANG Y("; I; ","; J; ")="; YA(I,J): NEXT: NEXT
- 722 PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
- 724 IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".Y"
- 726 OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,YR(I,J),YX(I,J),YM(I,J),YA(I,J): NEXT J: NEXT I
- 728 CLOSE #1: GOTO 330
- 730 REM H PARAMETER CALC
- 740 NR=FNMR((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 750 NX=FNMX((1+SR(1,1)),SX(1,1),(1+SR(2,2)),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 760 DR=FNMR((1-SR(1,1)),-SX(1,1),(1+SR(2,2)),SX(2,2))+FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 770 DX=FNMX((1-SR(1,1)),-SX(1,1),(1+SR(2,2)),SX(2,2))+FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 780 HR(1,1)=Z0*FNDR(NR,NX,DR,DX): HX(1,1)=Z0*FNDX(NR,NX,DR,DX)
- 790 NR=2*SR(1,2): NX=2*SX(1,2)
- 800 HR(1,2)=FNDR(NR,NX,DR,DX): HX(1,2)=FNDX(NR,NX,DR,DX)
- 810 NR=-2*SR(2,1): NX=-2*SX(2,1)
- 820 HR(2,1)=FNDR(NR,NX,DR,DX): HX(2,1)=FNDX(NR,NX,DR,DX)
- 830 NR=FNMR((1-SR(2,2)),-SX(2,2),(1-SR(1,1)),-SX(1,1))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 840 NX=FNMX((1-SR(2,2)),-SX(2,2),(1-SR(1,1)),-SX(1,1))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 850 HR(2,2)=FNDR(NR,NX,DR,DX)/Z0: HX(2,2)=FNDX(NR,NX,DR,DX)/Z0
- 860 FOR I=1 TO 2: FOR J=1 TO 2: PRINT
- 870 PRINT "REAL H("; I; ","; J; ")="; HR(I,J)
- 880 PRINT "IMG H("; I; ","; J; ")="; HX(I,J)
- 890 HM(I,J)=FNMG(HR(I,J),HX(I,J)): HA(I,J)=FNAG(HR(I,J),HX(I,J))
- 900 PRINT "MAG H("; I; ","; J; ")="; HM(I,J)
- 910 PRINT "ANG H("; I; ","; J; ")="; HA(I,J): NEXT: NEXT
- 912 PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
- 914 IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".H"
- 916 OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,HR(I,J),HX(I,J),HM(I,J),HA(I,J): NEXT J: NEXT I
- 918 CLOSE #1: GOTO 330
- 950 REM T PARAMETER CALC
- 960 NR=FNMR(SR(1,1),SX(1,1),SR(2,2),SX(2,2))-FNMR(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 970 NX=FNMX(SR(1,1),SX(1,1),SR(2,2),SX(2,2))-FNMX(SR(1,2),SX(1,2),SR(2,1),SX(2,1))
- 980 TX(1,1)=-FNDX(NR,NX,SR(2,1),SX(2,1))
- 990 TR(1,1)=-FNDR(NR,NX,SR(2,1),SX(2,1))
- 1000 TR(1,2)=FNDR(SR(1,1),SX(1,1),SR(2,1),SX(2,1))
- 1010 TX(1,2)=FNDX(SR(1,1),SX(1,1),SR(2,1),SX(2,1))
- 1020 TR(2,1)=-FNDR(SR(2,2),SX(2,2),SR(2,1),SX(2,1))
- 1030 TX(2,1)=-FNDX(SR(2,2),SX(2,2),SR(2,1),SX(2,1))
- 1040 TR(2,2)=FNDR(1,0,SR(2,1),SX(2,1))
- 1050 TX(2,2)=FNDX(1,0,SR(2,1),SX(2,1))
- 1060 FOR I=1 TO 2: FOR J=1 TO 2: PRINT
- 1070 PRINT "REAL T("; I; ","; J; ")="; TR(I,J)
- 1080 PRINT "IMG T("; I; ","; J; ")="; TX(I,J)
- 1090 TM(I,J)=FNMG(TR(I,J),TX(I,J)): TA(I,J)=FNAG(TR(I,J),TX(I,J))
- 1100 PRINT "MAG T("; I; ","; J; ")="; TM(I,J)
- 1110 PRINT "ANG T("; I; ","; J; ")="; TA(I,J): NEXT: NEXT
- 1112 PRINT: INPUT "WANT TO SAVE FILE (Y OR N)"; Q$
- 1114 IF Q$="N" THEN 330 ELSE INPUT "FILE NAME"; F$: F$=F$+".T"
- 1116 OPEN "O",#1,F$: FOR I=1 TO 2: FOR J=1 TO 2: PRINT#1,TR(I,J),TX(I,J),TM(I,J),TA(I,J): NEXT J: NEXT I
- 1118 CLOSE #1: GOTO 330
-