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!