Sharp PC1360 |
Dokumentation ansehen
Programmspeicher-Image laden
10 | "K" CLS :WAIT 0:PRINT "POLYGONBERECHNUNG":PRINT "- Werteeingabe -" |
20 | IF F1 THEN PRINT "Aktuelle Daten loeschen?":INPUT "J/N ";T$:IF T$<>"J" THEN END |
30 | CLEAR |
40 | DIM X(255),Y(255) |
50 | CLS |
60 | PRINT "X";STR$ N;" =" |
70 | INPUT X(N) |
80 | PRINT "Y";STR$ N;" =" |
90 | INPUT Y(N) |
100 | IF N=0 THEN LET XI=X(N):XA=X(N):YI=Y(N):YA=Y(N):GOTO 170 |
110 | IF X(N)<XI THEN LET XI=X(N) |
120 | IF Y(N)<YI THEN LET YI=Y(N) |
130 | IF X(N)>XA THEN LET XA=X(N) |
140 | IF Y(N)>YA THEN LET YA=Y(N) |
150 | IF X(N)=X(0) AND Y(N)=Y(0) THEN LET F1=1:GOTO "Z" |
160 | IF N=255 THEN PRINT "Max. Anzahl Ecken: 255":PRINT "Berechnen Sie Teile!":F1=1:GOTO "Z" |
170 | N=N+1:GOTO 50 |
180 | "Z" WAIT 0 |
190 | CLS :IF XA-XI>=YA-YI THEN LET F2=0 |
200 | IF XA-XI<YA-YI THEN LET F2=1 |
210 | MX=(129-F2*98)/(XA-XI):MY=(31+F2*98)/(YA-YI) |
220 | IF MX>=MY THEN LET M=MY |
230 | IF MX<MY THEN LET M=MX |
240 | IF F2 THEN 320 |
250 | FOR I=0 TO N-1 |
260 | LINE ((X(I)-XI)*M+.5,31-(Y(I)-YI)*M+.5)-((X(I+1)-XI)*M+.5,31-(Y(I+1)-YI)*M+.5) |
270 | NEXT I |
280 | IF XI<=0 AND XA>0 THEN LINE (-XI*M,0)-(-XI*M,32),X |
290 | IF YI<=0 AND YA>0 THEN LINE (0,31+YI*M)-((XA-XI)*M+5,31+YI*M),X |
300 | GOSUB 810 |
310 | GOTO 380 |
320 | FOR I=0 TO N-1 |
330 | LINE ((Y(I)-YI)*M+.5,(X(I)-XI)*M+.5)-((Y(I+1)-YI)*M+.5,(X(I+1)-XI)*M+.5) |
340 | NEXT I |
350 | IF YI<=0 AND YA>0 THEN LINE (-XI*M,0)-(-XI*M,32),X |
360 | IF XI<=0 AND XA>0 THEN LINE (0,-XI*M)-((YA-YI)*M+3,-XI*M),X |
370 | GOSUB 840 |
380 | WAIT |
390 | GPRINT |
400 | "C" CLS :WAIT 0 |
410 | IF F1=0 GOTO "K" |
420 | CLEAR U,A |
430 | FOR I=0 TO N-1 |
440 | DX=X(I)-X(I+1) |
450 | DY=Y(I+1)-Y(I) |
460 | U=U+ SQR (DX*DX+DY*DY) |
470 | A=A+(DX*Y(I)+.5*DX*DY) |
480 | NEXT I |
490 | "A" CLS :WAIT 0:PRINT "POLYGONBERECHNUNG":PRINT "- Werteausgabe -" |
500 | PRINT "Flaeche =",A |
510 | WAIT |
520 | PRINT "Umfang =",U |
530 | WAIT 0:CLS |
540 | PRINT "Xmin = ",XI |
550 | PRINT "Xmax = ",XA |
560 | PRINT "Ymin = ",YI |
570 | WAIT |
580 | PRINT "Ymax = ",YA |
590 | CLS :WAIT 0 |
600 | PRINT "Breite in X:",XA-XI |
610 | PRINT "Breite in Y:",YA-YI |
620 | END |
630 | "S" CLS :WAIT 0:PRINT "POLYGONBERECHNUNG":PRINT "- Daten speichern -" |
640 | INPUT "Filename: ";F$ |
650 | CLOSE |
660 | OPEN "X:"+F$+".DAT" FOR OUTPUT AS #3 |
670 | PRINT #3,X(*),Y(*),XA,XI,YA,YI,N |
680 | CLOSE |
690 | END |
700 | "L" CLS :WAIT 0:PRINT "POLYGONBERECHNUNG":PRINT "- Daten laden -" |
710 | IF F1 THEN PRINT "Aktuelle Daten loeschen?":INPUT "J/N ";T$:IF T$<>"J" THEN END |
720 | INPUT "Filename: ";F$ |
730 | CLOSE |
740 | OPEN "X:"+F$+".DAT" FOR INPUT AS #2 |
750 | CLEAR |
760 | DIM X(255),Y(255) |
770 | INPUT #2,X(*),Y(*),XA,XI,YA,YI,N |
780 | CLOSE |
790 | F1=1 |
800 | GOTO "Z" |
810 | GCURSOR ((XA-XI)*M+6,8):GPRINT 8;14;255;14;8;0;140;144;144;124 |
820 | GCURSOR ((XA-XI)*M+6,20):GPRINT 4;4;4;4;31;14;14;4;0;17;10;4;10;17 |
830 | RETURN |
840 | GCURSOR ((YA-YI)*M+6,8):GPRINT 4;4;4;4;31;14;14;4;0;140;144;144;124 |
850 | GCURSOR ((YA-YI)*M+6,20):GPRINT 16;112;255;112;16;0;0;0;136;80;32;80;136 |
860 | RETURN |
Dokumentation ansehen
Programmspeicher-Image laden
![]() |
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!