2bc0 3880 0000 B ... FKT-3D.B
PROGRAMM DIENT ZUM 3-DIMENSIONALEN DARSTELLEN VON FUNKTIONEN DER ART Z = F(X, Y) DIE FUNKTION IST DEN ZEILEN 1020 BIS 1090 ABZULEGEN UND MIT RETURN ABZUSCHLIESSEN.
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

 1000 A=100:GOTO 20:REM ## FKT3D ##
 1010 GOTO 1100:REM --- HIER IST Z = F(X,Y) ABZULEGEN ---
 1020 Z=ABS(X)+ABS(Y):IF Z<.01 THEN Z=1:RETURN
 1030 Z=SIN(Z)/Z
 1040 RETURN
 1100 SR$="3D-Funktion"
 1110 HO=INT((HO-LEN(SR$)-6)/2):VE=0:GOSUB 110:GOSUB 150:PRINT
 1120 REM --- STARTWERTE ---
 1130 XS=-20:XE=20:YS=-20:YE=20
 1140 ZS=-.5:ZE=1:F1=3:F2=20:T$="N"
 1150 REM --- HAUPTROUTINE ---
 1160 REM --- ERZEUGT DAS BILD ---
 1170 Y2=INT(VG/2):XX=HG-Y2:DIM HI(HG,1),FU(XX,1)
 1180 REM --- FELD BELEGEN ---
 1190 PRINT "bitte etwas warten"
 1200 FOR J=0 TO HG:HI(J,0)=0:HI(J,1)=1:NEXT J
 1210 REM --- EINGABEN ---
 1220 PRINT "Startwert von x =";XS;:A$="":INPUT A$
 1230 IF A$="" THEN 1250
 1240 XS=VAL(A$)
 1250 PRINT "Endwert   von x =";XE;:A$="":INPUT A$
 1260 IF A$="" THEN 1280
 1270 XE=VAL(A$)
 1280 IF XE<=XS THEN PRINT "Fehler":GOTO 1220
 1290 PRINT "Startwert von y =";YS;:A$="":INPUT A$
 1300 IF A$="" THEN 1320
 1310 YS=VAL(A$)
 1320 PRINT "Endwert   von y =";YE;:A$="":INPUT A$
 1330 IF A$="" THEN 1350
 1340 YE=VAL(A$)
 1350 IF YE<=YS THEN PRINT "Fehler":GOTO 1290
 1360 PRINT "Startwert von z =";ZS;:A$="":INPUT A$
 1370 IF A$="" THEN 1390
 1380 ZS=VAL(A$)
 1390 PRINT "Endwert   von z =";ZE;:A$="":INPUT A$
 1400 IF A$="" THEN 1420
 1410 IF ZE<=ZS THEN PRINT "Fehler":GOTO 1360
 1420 PRINT "x-Schritt =";F2;:A$="":INPUT A$
 1430 IF A$="" THEN 1450
 1440 F2=VAL(A$)
 1450 PRINT "y-Schritt =";F1;:A$="":INPUT A$
 1460 IF A$="" THEN 1490
 1470 F1=VAL(A$)
 1480 REM --- HILFSWERTE ---
 1490 VZ=Y2/(ZE-ZS):V2=VZ/VG:MO=2:MI=-1:MA=100:GV=1/VG
 1500 REM --- SCHRITTWEITEN ---
 1510 SX=(XE-XS)/XX:SY=(YE-YS)/Y2:SS=SX*F2
 1520 REM --- BILD DARSTELLEN ---
 1530 GOSUB 600:CN=0
 1540 S2=SY*F1:YW=YS-S2
 1550 FOR J=0 TO Y2+.8*F1 STEP F1:J1=1-J*GV
 1560 YW=YW+S2:XW=XS-SX:VA=MA
 1570 IF J>Y2 THEN J=Y2:YW=YE
 1580 FOR I=0 TO XX
 1590 XW=XW+SX:K=I+J:X=XW:Y=YW:HO=K/HG
 1600 GOSUB 1020
 1610 VE=J1+(ZS-Z)*V2
 1620 IF VE>MO THEN VE=MO
 1630 IF VE<MI THEN VE=MI
 1640 IF(VA=MA)OR(ABS(VA-VE)<=GV) THEN 1700
 1650 S=SGN(VE-VA)/VG:VV=VE
 1660 FOR VE=VA+S TO VV STEP S
 1670 IF VE>HI(K,0) THEN GOSUB 620
 1680 IF VE<HI(K,1) THEN GOSUB 620
 1690 NEXT VE:VE=VV
 1700 VA=VE:FU(I,1)=VE
 1710 IF VE>HI(K,1) THEN FU(I,0)=HI(K,1):FU(I,1)=HI(K,1)
 1720 IF VE>HI(K,0) THEN HI(K,0)=VE:GOSUB 620
 1730 IF VE<HI(K,1) THEN HI(K,1)=VE:GOSUB 620
 1740 IF J=0 THEN FU(I,0)=VE
 1750 GOSUB 200:IF IN<>0 THEN 2030
 1760 NEXT I
 1770 REM --- QUERLINIEN ---
 1780 FOR I=0 TO XX+.9*F2 STEP F2
 1790 IF I>XX THEN I=XX
 1800 F=FU(I,0)>FU(I,1)
 1810 IF F THEN HO=(J+I-F1)/HG:VE=FU(I,0):GOSUB 620
 1820 IF F THEN HO=(J+I)/HG:VE=FU(I,1):GOSUB 630
 1830 NEXT I
 1840 REM --- UMSCHREIBEN DER QUERLINIENWERTE ---
 1850 FOR I=0 TO XX:FU(I,0)=FU(I,1):NEXT I
 1860 REM ---- UNTERER KASTEN ----
 1870 IF J=0 THEN HO=0:VE=FU(0,0):GOSUB 620:VE=1-GV:GOSUB 630
 1880 IF J=0 THEN HO=XX/HG:GOSUB 630:VE=FU(XX,0):GOSUB 630
 1890 NEXT J
 1900 REM ----- RECHTS UNTERER KASTEN ---
 1910 HO=XX/HG:VE=1-GV:GOSUB 620:HO=1-1/HG:VE=Y2*GV
 1920 GOSUB 630:VE=FU(XX,1):GOSUB 630
 1930 REM --- BILD FERTIG ---
 1940 GOSUB 210:REM KENNWERTE SCHREIBEN
 1950 SR=F1:GOSUB 300:A$="Schritte "+SR$+":"
 1960 SR=F2:GOSUB 300:SR$=A$+SR$:HO=0:VE=0:GOSUB 650
 1970 SR=XS:GOSUB 300:A$=SR$+"<x<":SR=XE:GOSUB 300
 1980 SR$=A$+SR$:VE=8*GV:GOSUB 650
 1990 SR=YS:GOSUB 300:A$=SR$+"<y<":SR=YE:GOSUB 300
 2000 SR$=A$+SR$:VE=16*GV:GOSUB 650
 2010 SR=ZS:GOSUB 300:A$=SR$+"<z<":SR=ZE:GOSUB 300
 2020 SR$=A$+SR$:VE=24*GV:GOSUB 650
 2030 GOSUB 210:GOSUB 100
 2040 PRINT "Wie fortsetzen ?"
 2050 INPUT "E = Ende   N = Neues Bild";T$:
 2060 IF(T$<>"E")AND(T$<>"e") THEN T$="N":GOTO 1190
 2070 GOTO 950
30000 REM --------- HINWEISE ----------------
30010 REM PROGRAMM DIENT ZUM 3-DIMENSIONALEN DARSTELLEN
30020 REM VON FUNKTIONEN DER ART Z = F(X, Y)
30030 REM DIE FUNKTION IST DEN ZEILEN 1020 BIS 1090
30040 REM ABZULEGEN UND MIT RETURN ABZUSCHLIESSEN.
32000 REM ----------- AUTOR ------------------
32010 REM H. VOELZ; 22.8.89; FUER BASICODE-BUCH
32020 REM ------------------------------------
32030 REM
32040 REM ERSTAUSSTRAHLUNG: RADIO DDR
32050 REM 900124