Sharp PC-E500/E500S Technikersoftware

FUNC.151

Grafik Funktionen

FUNC.151 (2.233 Bytes)

10 ' FUNCTION.151 (graph function)
15 CLEAR
20 MERGE "G:COMN.00$"
30 ON ERROR GOTO *ERR
40 Q5=239-74:ERASE P1:DIM P1(Q5*2)
50 R2$="":QXA=0:QXB=0
60 GOSUB 900
70 PRINT "f(x)= ";R2$;:IF R2$<>"" THEN PRINT " ";
80 INPUT R2$:IF R2$="" THEN 60
90 IF LEN R2$<30 THEN P3$=R2$:GOTO 110
100 P3$=LEFT$ (R2$,30)+"..."
110 GOSUB 800:PRINT " Xmin= ";:QXA=0:INPUT QXA
120 GOSUB 800:PRINT " Xmin=";QXA:PRINT " Xmax= ";:QXB=0:INPUT QXB
130 IF QXB<=QXA THEN 110
140 GOSUB 900:PRINT "Xmin=";QXA:PRINT " Xmax=";QXB
150 GOSUB *DPC
160 ' Calc.
170 QYA=0:QYB=QYA:QFG=QYA
180 QXS=(QXB-QXA)/Q5:QJ=1
190 FOR X=QXA TO QXB STEP QXS
200 P1(QJ)=EVAL R2$
210 IF QJ=1 THEN QYA=P1(1):QYB=QYA
220 IF QYA>P1(QJ) THEN QYA=P1(QJ)
230 IF QYB<P1(QJ) THEN QYB=P1(QJ)
240 QJ=QJ+1:NEXT
250 ' Calc. end
260 IF QFG<>0 THEN QYA=0:QYB=QYA:GOTO 290
270 QXQ=QYA:QYQ=-4:IF QXQ<1 THEN GOSUB *RND:QYA=QXQ ELSE GOSUB *RNDN:QYA=QXQ
275 QXQ=QYB:QYQ=-4:IF QXQ<1 THEN GOSUB *RND:QYB=QXQ ELSE GOSUB *RNDN:QYB=QXQ
280 ' Input Ymin,Ymax
290 GOSUB 550:GOSUB 570:GOSUB 560:INPUT QYA
300 GOSUB 550:GOSUB 560:GOSUB 570:INPUT QYB
310 IF QYA>=QYB THEN 290
320 ' Graph
330 GOSUB 550:GOSUB 560:GOSUB 570
340 LOCATE 12,0:PRINT "|":LOCATE 12,1:PRINT "|"
350 LOCATE 12,2:PRINT "|":LOCATE 12,3:PRINT "|"
360 ' X line
370 IF SGN QYA=SGN QYB THEN 410
380 QYP=32*(QYB/(QYB-QYA))
390 LINE (74,QYP)-(239,QYP)
400 ' Y line
410 IF SGN QXA=SGN QXB THEN 440
420 QXP=(239-74)*(QXA/(QXA-QXB))+74:QXP=ABS QXP
430 LINE (QXP,0)-(QXP,31)
440 '
450 LOCATE 0,3:PRINT "*"
460 FOR QI=1 TO Q5
470 IF P1(QI)<QYA OR P1(QI)>QYB THEN 510
480 QWP=ABS (P1(QI)-QYB)
490 QYP=QWP/((QYB-QYA)/32)
500 PSET (QI+73,QYP)
510 NEXT
520 ' Graph end
530 LOCATE 0,3:PRINT " ":GOSUB *REK:GOTO 60
540 ' Subroutines
550 CLS :PRINT " Xmin=";QXA:PRINT " Xmax=";QXB:RETURN
560 LOCATE 1,2:PRINT "Ymin=";QYA;:RETURN
570 LOCATE 1,3:PRINT "Ymax=";QYB;:RETURN
800 GOSUB 900:PRINT "f(x)= ";P3$:RETURN
900 CLS :LOCATE 9,0:PRINT "*  GRAPH (FUNCTION)  *":LOCATE 1,1:RETURN
1000 *ERR IF ERL =80 RESUME 60
1010 IF ERL =110 OR ERL =120 OR ERL =290 OR ERL =300 RESUME ERL
1020 IF ERL =200 THEN IF ERN =10 RESUME 60 ELSE P1(QJ)=0:QFG=1:RESUME NEXT
1030 GOSUB 900: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