Sharp PC-E500/E500S Technikersoftware

SCUBIC.12$

CUBIC Subroutine

SCUBIC.12$ (1.305 Bytes)

3000 ' SCUBIC.12$ (CUBIC Subroutine)
3010 DEGREE :R7=Q1/P1/3:P6=R1/P1/3-R7^2:Q6=2*R7^3-R7*R1/P1+P2/P1
3020 IF ABS P6<SQU R7*1E-10 THEN P6=0
3030 IF ABS Q6<CUB R7*1E-10 THEN Q6=0
3040 Q7=SQU Q6+4*CUB P6:IF ABS Q7<SQU Q6*5E-10 THEN Q7=0
3050 R6=(Q6+SQR ABS Q7)/2:P7=(Q6-SQR ABS Q7)/2
3060 R6=SGN R6*CUR ABS R6:P7=SGN P7*CUR ABS P7
3070 P8=R6+P7
3080 ON SGN Q7+2 GOTO 3250,3090,3150
3090 QX=-P8-R7:IF P6 THEN 3130
3100 ' x only
3110 QNN=1:GOTO 3300
3120 ' x & y
3130 QY=P8/2-R7:QNN=2:GOTO 3290
3140 ' x & y & z
3150 QNN=3
3160 QX=-P8-R7:QY=P8/2-R7
3162 Q9=ABS (SQR 3/2*(R6-P7))
3164 GOSUB 3320:GOSUB 3330
3170 QY$=STR$ QY+" ":Q9$=MID$ (STR$ Q9,2,15)
3180 IF QY=0 THEN QY$="":IF Q9=0 THEN Q9$=""
3190 QYY$=QY$:IF QY THEN QYY$=QYY$+"+"
3200 IF Q9-1 THEN QYY$=QYY$+" "+Q9$+"i" ELSE QYY$=QYY$+" i"
3210 QZZ$=QY$+"-":IF QY THEN QZZ$=QZZ$+" "
3220 IF Q9-1 THEN QZZ$=QZZ$+Q9$+"i" ELSE QZZ$=QZZ$+"i"
3230 GOTO 3300
3240 ' x & y & z
3250 Q3=ACS (Q6/2/SQR ABS (-P6*P6*P6))/3:QI=-2*SQR ABS -P6
3260 QX=QI*COS Q3-R7:QY=QI*COS (Q3+120)-R7:Q9=QI*COS (Q3+240)-R7
3270 QNN=3
3280 GOSUB 3320:QZZ$=STR$ Q9
3290 GOSUB 3330:QYY$=STR$ QY
3300 QXQ=QX:QYQ=-7:GOSUB *RNDN:QX=QXQ:QXX$=STR$ QX
3310 RETURN
3320 QXQ=Q9:QYQ=-7:GOSUB *RNDN:Q9=QXQ:RETURN
3330 QXQ=QY:QYQ=-7:GOSUB *RNDN:QY=QXQ:RETURN

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

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