Sharp PC-E500/E500S Technikersoftware

DATA.152

Grafik Daten

DATA.152 (2.913 Bytes)

10 ' PLOT.152 (Graph data)
20 MERGE "G:COMN.00$"
30 ON ERROR GOTO *ERR
40 CLEAR QXA,QXB,QYA,QYB:Q5=100
50 ' Menu disp
60 GOSUB 720:PRINT "1. Clear all data   2. Input data"
70 LOCATE 3,2:PRINT "3. Plot"
80 Q9=ASC INKEY$ &1:IF Q9<&31 OR Q9>&34 THEN 80
90 IF Q9=&31 THEN 120
100 Q8=MD(0,0):Q8=MD(0,1)
110 IF Q9=&32 THEN 190 ELSE 290
120 ' Clear all data
130 GOSUB 720:LOCATE 3,2:PRINT "Clear ok (y/n)"
140 Q9=ASC INKEY$ &1:IF Q9<>&4AND Q9<>&59 THEN 140
150 IF Q9=&4THEN 60
160 GOSUB 720:LOCATE 3,2:PRINT "Number of data= ";:INPUT Q5
170 IF Q5-INT Q5<>0 OR Q5<1 OR Q5>100 THEN 160
180 ERASE MD:DIM MD(Q5-1,1):GOTO 60
190 ' Input data
200 GOSUB 720:LOCATE 0,1
210 QI=1
220 QI$="("+MID$ (STR$ QI,2,2)+")="
230 PRINT " X"+QI$;MD(QI-1,0);:Q9$="":INPUT Q9$:IF Q9$="*" THEN 60
240 IF Q9$="" THEN 250 ELSE 270
250 PRINT " Y"+QI$;MD(QI-1,1);:Q9$="":INPUT Q9$:IF Q9$="*" THEN 60
260 IF Q9$="" THEN 285 ELSE 280
270 MD(QI-1,0)=EVAL Q9$:GOTO 250
280 MD(QI-1,1)=EVAL Q9$
285 QI=QI+1:GOTO 220
290 ' Get Min,Max
300 QXA=MD(0,0):QXB=QXA:QYA=MD(0,1):QYB=QYA
310 QI=1
320 IF MD(QI,0)<QXA THEN QXA=MD(QI,0)
330 IF MD(QI,0)>QXB THEN QXB=MD(QI,0)
340 IF MD(QI,1)<QYA THEN QYA=MD(QI,1)
350 IF MD(QI,1)>QYB THEN QYB=MD(QI,1)
360 QI=QI+1:GOTO 320
370 GOSUB 670:GOSUB 680:INPUT QXA
380 GOSUB 670:GOSUB 690:INPUT QXB
390 IF QXB<QXA THEN 370
400 GOSUB 670:GOSUB 700:INPUT QYA
410 GOSUB 670:GOSUB 710:INPUT QYB
420 IF QYB<QYA THEN 400
430 GOSUB 670
440 LOCATE 12,0:PRINT "|":LOCATE 12,1:PRINT "|"
450 LOCATE 12,2:PRINT "|":LOCATE 12,3:PRINT "|"
460 ' X-LINE
470 IF SGN QYA=SGN QYB THEN 510
480 QYP=32*(QYB/(QYB-QYA))
490 LINE (74,QYP)-(239,QYP)
500 ' Y-LINE
510 IF SGN QXA=SGN QXB THEN 550
520 QXP=(239-74)*(QXA/(QXA-QXB))+74:QXP=ABS QXP
530 LINE (QXP,0)-(QXP,31)
540 ' Plotting
550 LOCATE 0,3:PRINT "*"
560 QI=0
570 IF MD(QI,0)<QXA OR MD(QI,0)>QXB THEN 630
580 IF MD(QI,1)<QYA OR MD(QI,1)>QYB THEN 630
590 QWP=ABS (MD(QI,1)-QYB)
600 QYP=QWP/((QYB-QYA)/32)
610 QXP=(239-74)*(MD(QI,0)-QXA)/(QXB-QXA)
620 PSET (QXP+73,QYP):PSET (QXP+73,QYP-1):PSET (QXP+74,QYP):PSET (QXP+74,QYP-1)
630 QI=QI+1:GOTO 570
640 ' Plotting end
650 LOCATE 0,3:PRINT " ":GOSUB *REK:GOTO 60
660 ' Subroutines
670 CLS :GOSUB 680:GOSUB 690:GOSUB 700:GOSUB 710
680 LOCATE 1,0:PRINT "Xmin=";QXA;:RETURN
690 LOCATE 1,1:PRINT "Xmax=";QXB;:RETURN
700 LOCATE 1,2:PRINT "Ymin=";QYA;:RETURN
710 LOCATE 1,3:PRINT "Ymax=";QYB;:RETURN
720 CLS :LOCATE 11,0:PRINT "*  GRAPH (DATA)  *":LOCATE 3,1:RETURN
1000 *ERR IF ERN <>31 AND ERN <>32 AND ERN <>33 THEN 1080
1010 IF ERL =100 THEN 1080
1020 IF ERL =230 OR ERL =250 RESUME 60
1030 IF ERL >=320 AND ERL <=350 RESUME 370
1040 IF ERL =570 OR ERL =580 RESUME 650
1050 IF ERL =270 RESUME 230
1060 IF ERL =280 RESUME 250
1070 IF ERL =160 OR (ERL >=370 AND ERL =410) RESUME ERL
1075 IF ERL =180 RESUME 160
1080 GOSUB 720: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