10 WIDTH 80
20 WIDTH LPRINT 80
30 DIM X(40),Y(40)
40 DIM ST(100)
50 DIM FL(100)
60 DIM VL(100)
70 DIM TFL(20)
80 BL = 1
90 S = 68
100 ZZ = 0
110 INPUT "Geben Sie die Anzahl der Profile ein:",PL
120 INPUT "Mit welchem Anfangswert soll =PROFIL= ausgedruckt werden:",PROFZAEL
130 INPUT "Mit welchem Anfangswert soll =STATION= ausgedruckt werden:",ST(1)
140 LPRINT TAB(68);"* Seite";BL;"*"
150 LPRINT
160 LPRINT "Profil Nr.";TAB(12);"Station";TAB(23);"x";TAB(30);"y";TAB(35);"Fl{che i. qm";TAB(49);"Masse einzeln";TAB(63);"Masse gesamt"
170 LPRINT TAB(4);PROFZAEL;TAB(12);:LPRINT USING "####.##";ST(1);:LPRINT TAB(42);"0.00";TAB(57);"0.000";TAB(70);"0.000"
180 ZZ = ZZ+3
190 FOR I = 2 TO PL
200 PROFZAEL = PROFZAEL + 1
210 INPUT "Station:",ST(I)
220     IF ST(I) = 0 THEN PRINT "Bitte }berpr}fen Sie den Wert =STATION= von Profil Nr.";I:GOTO 210
230     IF ST(I) <= ST(I-1) THEN PRINT "Bitte }berpr}fen Sie den Wert =STATION= von Profil Nr.";I:GOTO 210
240 IF ZZ > S THEN GOSUB 710
250 LPRINT TAB(4);PROFZAEL;TAB(12);:LPRINT USING "####.##";ST(I)
260 ZZ = ZZ+1
270 IF I = PL THEN GOTO 320
280 PRINT "Soll Profil";PROFZAEL;"in mehrere Teilfl{chen aufgeteilt werden (J/N):";:INPUT PROFILTEIL$
290 IF PROFILTEIL$ = "J" OR PROFILTEIL$ = "j" THEN GOSUB 400 ELSE IF PROFILTEIL$ = "N" OR PROFILTEIL$ = "n" THEN GOSUB 540 ELSE PRINT "Eingabe Wiederholen":PRINT:GOTO 280
300 FL(I) = F
310 FL(1) = 0
320 FL(PL) = 0
330 LET VL(I) = ((FL(I-1)+FL(I))/2)*(ST(I)-ST(I-1))
340 MG = MG + VL(I)
350 IF ZZ > S THEN GOSUB 710
360 LPRINT TAB(36);:LPRINT USING "###,###.##";FL(I);:LPRINT TAB(51);:LPRINT USING "###,###.###";VL(I);:LPRINT TAB(64);:LPRINT USING "###,###.###";MG
370 ZZ = ZZ+1
375 F = 0
380 NEXT I
390 END
400 PRINT "Wieviele Teilfl{chen soll Profil";PROFZAEL;"enthalten;:":INPUT TEILFL
410 FOR K = 1 TO TEILFL
420 IF ZZ > S THEN GOSUB 710
430 LPRINT TAB(12);K;". Teilfl{che"
440 ZZ = ZZ + 1
450 GOSUB 540
460 LET TFL(K) = F
470 LET FG = FG+TFL(K)
480 LET TVL(K) = ((FL(I-1)+TFL(K))/2)*(ST(I)-ST(I-1))
490 IF ZZ > S THEN GOSUB 710
500 LPRINT TAB(36);:LPRINT USING "###,###.##";TFL(K);:LPRINT TAB(51);:LPRINT USING "###,###.###";TVL(K)
510 ZZ = ZZ + 1
520 NEXT K
525 LET F = FG
530 RETURN
540 INPUT "Geben Sie die Anzahl der Eckpunkte an:",N
550 IF N < 3 THEN GOTO 540
560 PRINT "Die x,y Koordinaten werden in m angegeben."
570 FOR W = 1 TO N
580 INPUT "x,y Wert:",X(W),Y(W)
590 IF W = N THEN PRINT CHR$(7)
600 IF ZZ > S THEN GOSUB 710
610 LPRINT TAB(21);:LPRINT USING "###.##";X(W);:LPRINT TAB(28);:LPRINT USING "###.##";Y(W)
620 ZZ = ZZ + 1
630 LET F = X(1)*(Y(2)-Y(N))+X(N)*(Y(1)-Y(N-1))
640 NEXT W
650 FOR W = 2 TO N-1
660 LET F = F + (X(W)*(Y(W+1)-Y(W-1)))
670 NEXT W
680 F = F/2
690 IF F = < 0 THEN F = F*-1
700 RETURN
710 BL = BL + 1
720 LPRINT CHR$(12)
730 LPRINT TAB(68);"* Seite";BL;"*"
740 LPRINT "Profil Nr.";TAB(12);"Station";TAB(23);"x";TAB(30);"y";TAB(35);"Fl{che i. qm";TAB(49);"Masse einzeln";TAB(63);"Masse gesamt"
750 ZZ = 2
760 RETURN
tation";TAB(23);"x";TAB(30);"y";TAB(35);"Fl{che i. 