Sharp PC-E500/E500S Technikersoftware

COMPLX.311

Komplexe Zahlen

COMPLX.311 (2.588 Bytes)

10 ' COMPLEX.311 (Complex number)
20 CLEAR
30 MERGE "G:COMN.00$"
40 ON ERROR GOTO *ERR
50 GOSUB *CG
60 GOSUB 400
70 Q9$=INKEY$ &1:Q9=ASC Q9$
80 WAIT 10:PRINT "":WAIT 0
90 IF Q9=&58 THEN 170 ELSE IF Q9=&59 THEN 180
100 IF Q9=&2THEN 190 ELSE IF Q9=&2THEN 200
110 IF Q9=&2THEN 210 ELSE IF Q9=&2THEN 220
120 IF Q9=&B THEN 230 ELSE IF Q9=&17 THEN 240
130 IF Q9=&C THEN 250 ELSE IF Q9=&3 THEN 260
140 IF Q9=&FC THEN 270 ELSE IF Q9=&87 THEN 290
150 IF Q9=&88 THEN 300 ELSE IF Q9=&28 THEN 310
160 GOTO 60
170 Q2$="X":QX=P1:QY=Q1:GOSUB 360:P1=QX:Q1=QY:GOTO 340
180 Q2$="Y":QX=R1:QY=P2:GOSUB 360:R1=QX:P2=QY:GOTO 345
190 P1=P1+R1:Q1=Q1+P2:GOTO 340
200 P1=P1-R1:Q1=Q1-P2:GOTO 340
210 Q2=P1*R1-Q1*P2:R2=Q1*R1+P1*P2:GOTO 330
220 Q2=(P1*R1+Q1*P2)/(R1*R1+P2*P2):R2=(Q1*R1-P1*P2)/(R1*R1+P2*P2):GOTO 330
230 P3=P3+P1:Q3=Q3+Q1:GOTO 340
240 P1=P3:Q1=Q3:GOTO 340
250 P3=P1:Q3=Q1:GOTO 340
260 Q2=P1:R2=Q1:P1=R1:Q1=P2:R1=Q2:P2=R2:GOTO 340
270 IF Q1=0 THEN IF P1<0 THEN R2=SQR -P1:Q2=0:GOTO 330 ELSE Q2=SQR P1:R2=0:GOTO 330
280 IF Q1<>0 THEN QX=SQR (P1*P1+Q1*Q1):Q2=SQR ((P1+QX)/2):R2=Q1/(2*Q2):GOTO 330
290 Q2=P1/(P1*P1+Q1*Q1):R2=-Q1/(P1*P1+Q1*Q1):GOTO 330
300 Q2=P1*P1-Q1*Q1:R2=2*P1*Q1:GOTO 330
310 Q2=SQR (P1*P1+Q1*Q1):R2=ACS (P1/Q2):IF Q1 THEN R2=R2*SGN Q1
320 P1=Q2:Q1=0:R1=R2:P2=Q1:GOTO 340
330 P1=Q2:Q1=R2
340 QXQ=P1:QYQ=-8:GOSUB *RNDN:P1=QXQ:QXQ=Q1:QYQ=-8:GOSUB *RNDN:Q1=QXQ:GOTO 60
345 QXQ=R1:QYQ=-8:GOSUB *RNDN:R1=QXQ:QXQ=P2:QYQ=-8:GOSUB *RNDN:P2=QXQ:GOTO 60
350 ' Input data
360 GOSUB 530:LOCATE 1,1:PRINT Q2$+"(real) =";QX;:INPUT QX
370 GOSUB 530:LOCATE 1,1:PRINT Q2$+"(real) =";QX
380 LOCATE 1,2:PRINT Q2$+"(image)=";QY;:INPUT QY:RETURN
390 ' Disp. data
400 GOSUB 530:LOCATE 1,1:PRINT "X= ";
410 IF Q1>=0 THEN P1$=" +" ELSE P1$=" -"
420 R1$=STR$ P1:IF P1 THEN P2$=STR$ ABS Q1 ELSE P2$=STR$ Q1
430 IF ABS Q1=1 THEN P2$=MID$ (P2$,1,1)
440 IF Q1=0 PRINT R1$:GOTO 460
450 IF P1=0 PRINT P2$;"i"ELSE PRINT R1$;P1$;P2$;"i";
460 LOCATE 1,2:PRINT "Y= ";
470 IF P2>=0 THEN P1$=" +" ELSE P1$=" -"
480 R1$=STR$ R1:IF R1 THEN P2$=STR$ ABS P2 ELSE P2$=STR$ P2
490 IF ABS P2=1 THEN P2$=MID$ (P2$,1,1)
500 IF P2=0 PRINT R1$:GOTO 520
510 IF R1=0 PRINT P2$;"i"ELSE PRINT R1$;P1$;P2$;"i";
520 RETURN
525 ' Disp message
530 CLS :LOCATE 10,0:PRINT "*  COMPLEX NUMBER  *"
540 LOCATE 0,3:PRINT " << X,Y,+-*/,M+,RM,x"+CHR$ &FB+"M,"+CHR$ &E7+","+CHR$ &EB+",1/x,x"+CHR$ &C3+","+CHR$ &FB+"xy>>":RETURN
1000 *ERR IF ERL =360 RESUME 360
1010 IF ERL =380 RESUME 370
1020 CLS :LOCATE 10,0:PRINT "*  COMPLEX NUMBER  *"
1030 GOSUB *DPA:GOSUB *REK:RESUME 60

Generated by (c) Casio FX-850P/FX-880P Notepad 2.02

(c) by mani.becker@web.de - http://blog.manib.bplaced.net