home *** CD-ROM | disk | FTP | other *** search
- 1000 rem ******************************
- 1010 rem * programm para-plot *
- 1020 rem * v 1.1 *
- 1030 rem * u. schwebinghaus *
- 1040 rem * erbschloer str. 115 *
- 1050 rem * 5600 wuppertal 21 *
- 1060 rem * *
- 1070 rem ******************************
- 1072 :
- 1073 rem ****** erststart ******
- 1074 :
- 1075 if lf=1 then 1082
- 1080 lf=1:load"fractal.obj",8,1
- 1082 fx$="sin(t*t+t-3)"
- 1083 fy$="cos(t)":vb=1
- 1085 sys 50176,1,2:goto 4000
- 1087 :
- 1100 rem ******* definition *********
- 1105 :
- 1110 gosub 2000
- 1120 if a$="m" then 4000
- 1130 print""
- 1140 print"x(t) = "fx$
- 1142 print"[145]"tab(7);:input fx$
- 1143 print
- 1145 print"y(t) = "fy$
- 1150 print"[145]"tab(7);:input fy$
- 1160 gosub 2100
- 1170 if a$="k" then 1130
- 1200 :
- 1210 print"[147][149]";
- 1220 print 4590"xw="fx$
- 1230 print 5050"xw="fx$
- 1240 print 4610"yw="fy$
- 1242 print 5080"yw="fy$
- 1246 print "fx$="chr$(34)fx$ chr$(34)
- 1247 print "fy$="chr$(34)fy$ chr$(34)
- 1248 print "vb="vb":goto 4000"
- 1250 poke 198,7
- 1260 for i=1 to 7
- 1270 : poke 630+i,13
- 1280 next i
- 1290 print"":end
- 1300 :
- 1310 :
- 2000 rem ****** upgm-einstieg ******
- 2010 :
- 2020 print"[147]"tab(8)"" mp$(r)
- 2030 print:print
- 2040 print tab(8)"w[146]eiter oder m[146]enue?"
- 2050 get a$:if a$="" then 2050
- 2060 if a$<>"w" and a$<>"m" then 2050
- 2070 :
- 2080 : return
- 2090 :
- 2100 rem ****** korrektur ******
- 2110 :
- 2120 print tab(6) "k[146]orrektur oder w[146]eiter?"
- 2130 get a$:if a$="" then 2130
- 2140 if a$<>"w" and a$<>"k" then 2130
- 2160 :
- 2170 : return
- 2180 :
- 2200 rem ****** einstieg/hinweis ******
- 2210 :
- 2220 print"[147]"tab(8)"" mp$(r)
- 2230 print
- 2240 print"[153] vom bild fuehrt die taste <m> "
- 2250 print" ins menue zurueck!"
- 2255 print tab(8)"w[146]eiter oder m[146]enue?"
- 2260 get a$:if a$="" then 2260
- 2270 if a$<>"w" and a$<>"m" then 2260
- 2280 :
- 2290 : return
- 2300 :
- 2500 rem ****** informationen ******
- 2510 :
- 2520 gosub 2000
- 2530 if a$="m" then return
- 2540 print"[153]diskette mit infobild muss einliegen!"
- 2550 gosub 2100
- 2560 if a$="k" then return
- 2570 n$="infobild":sys 50176,1,2
- 2580 open 2,8,2,n$+",p,r":sys 50188:close 2
- 2590 gosub 3580:gosub 3740:return
- 2600 :
- 3000 rem ****** parameter ******
- 3010 :
- 3020 gosub 2000
- 3030 if a$="m" then return
- 3040 print""
- 3045 if pz=0 then pz=100
- 3050 print"x min = "xu
- 3060 print"[145]"tab(8);:input xu
- 3070 print"x max = "xo
- 3080 print"[145]"tab(8);:input xo
- 3090 print"y min = "yu
- 3100 print"[145]"tab(8);:input yu
- 3110 print"y max = "yo
- 3120 print"[145]"tab(8);:input yo
- 3130 print"t min = "t1
- 3140 print"[145]"tab(8);:input t1
- 3150 print"t max = "t2
- 3160 print"[145]"tab(8);:input t2
- 3170 print"punktezahl = "pz
- 3180 print"[145]"tab(14);:input pz
- 3185 print"[153]eingabe von 0 in x min, x max, y min und"
- 3186 print"y max erzielt anpassung an parameter t."
- 3190 gosub 2100
- 3200 if a$="k" or pz<=0 or t2-t1<=0 then 3040
- 3210 tx=(t2-t1)/pz
- 3220 :
- 3230 : return
- 3240 :
- 3300 rem ****** modus ******
- 3310 :
- 3320 gosub 2000
- 3330 if a$="m" then return
- 3340 vb$(0)="nein":vb$(1)=" ja "
- 3350 print""
- 3355 print"punkte des graphen verbinden: "vb$(vb)
- 3360 gosub 2100
- 3370 if a$="k" then vb=abs(vb-1):goto 3350
- 3380 :
- 3390 : return
- 3400 :
- 3500 rem ****** bild zeigen ******
- 3510 :
- 3520 gosub 2200
- 3570 if a$="m" then return
- 3580 sys 50179,1
- 3590 gosub 2000
- 3600 sys 50179,0
- 3610 :
- 3620 : return
- 3630 :
- 3700 rem ****** bild loeschen ******
- 3710 :
- 3715 gosub 2000:if a$="m" then return
- 3740 sys 50176,1,2
- 3750 :
- 3760 : return
- 3780 :
- 3800 rem ****** bild speichern ******
- 3810 :
- 3820 gosub 2000
- 3830 if a$="m" then return
- 3832 n$=""
- 3835 print""
- 3840 print" bildname: "n$
- 3850 print"[145]"tab(16);:input n$
- 3860 gosub 2100
- 3870 if a$="k" or len(n$)=0 or len(n$)>16 then 3835
- 3880 open2,8,2,n$+",p,w":sys 50191:close 2
- 3885 :
- 3890 : return
- 3895 :
- 3900 rem ****** bild laden ******
- 3910 :
- 3920 gosub 2000
- 3930 if a$="m" then return
- 3932 n$=""
- 3935 print""
- 3940 print" bildname: "n$
- 3950 print"[145]"tab(16);:input n$
- 3960 gosub 2100
- 3970 if a$="k" or len(n$)=0 or len(n$)>16 then 3835
- 3980 open2,8,2,n$+",p,r":sys 50188:close 2
- 3985 :
- 3990 : return
- 3995 :
- 4000 rem ******* menue *******
- 4010 :
- 4020 cd$=""
- 4030 tt$="p a r a m e t e r - p l o t"
- 4040 tu$="[184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184]"
- 4050 mp$(1)="* informationen *"
- 4060 mp$(2)="* neue vorschrift *"
- 4070 mp$(3)="* parameterbereich *"
- 4080 mp$(4)="* zeichenmodus *"
- 4090 mp$(5)="* graph zeichnen *"
- 4100 mp$(6)="* bild zeigen *"
- 4110 mp$(7)="* bild loeschen *"
- 4120 mp$(8)="* bild speichern *"
- 4130 mp$(9)="* bild laden *"
- 4140 mp$(10)="* programm-ende *"
- 4145 :
- 4150 poke 53280,9 :poke 53281,9:rem farben
- 4160 print"[147]"tab(7)tt$:print tab(7)tu$
- 4170 print
- 4180 for i=1 to 10:print"[158]"tab(10) mp$(i):print:next i
- 4190 print"wahl mit cursor up und down und return";
- 4200 if r=0 then r=1
- 4210 gosub 4290
- 4220 get a$:if a$="" then 4220
- 4230 if a$="" then gosub 4320
- 4240 if a$="[145]" then gosub 4350
- 4250 if a$<>chr$(13) then 4220
- 4260 if r=10 then print"[147]":end
- 4265 if r=2 then 1110
- 4270 on r gosub 2500,1110,3000,3300,4500,3500,3700,3800,3900:goto 4160
- 4280 :
- 4290 print""left$(cd$,(r-1)*2)tab(10)""mp$(r):return
- 4300 print""left$(cd$,(r-1)*2)tab(10)"[158]"mp$(r):return
- 4310 :
- 4320 gosub 4300:r=r+1:if r>10 then r=1
- 4330 gosub 4290:return
- 4340 :
- 4350 gosub 4300:r=r-1:if r<1 then r=10
- 4360 gosub 4290:return
- 4370 :
- 4380 :
- 4500 rem ****** graph zeichnen ******
- 4510 :
- 4520 gosub 2200
- 4530 if a$="m" then return
- 4539 if tx=0 then t1=-3.3:t2=3.3:tx=6.6/100
- 4540 if xo-xu<=0 or yo-yu<=0 then gosub 5000
- 4550 sys 50179,1:sys 50194
- 4560 xv=320/(xo-xu):yv=200/(yo-yu)
- 4570 gosub 6000
- 4580 poke 768,61:for t=t1 to t2 step tx
- 4590 xw=sin(t)*exp(0.1*t)
- 4600 xb=int((xw-xu)*xv)
- 4610 yw=sin(t)*cos(t)
- 4620 yb=199-int((yw-yu)*yv)
- 4630 if xb<0 or xb>319 or yb<0 or yb>199 then 4700
- 4640 sys 50182,xb,yb,1
- 4650 if t>t1+0.5*tx and vb=1 then sys50185,xa,ya,xb,yb,1
- 4660 xa=xb:ya=yb
- 4700 next t:poke 768,139
- 4710 :
- 4720 gosub 2000:if a$<>"m"then 4720
- 4730 sys 50179,0
- 4800 : return
- 4810 :
- 5000 rem ****** automatische grenzen ******
- 5010 :
- 5020 print" [153]bitte warten, x und y werden"
- 5030 print" an den parameter t angepasst!"
- 5040 poke 768,61:for t=t1 to t2 step tx
- 5050 xw=sin(t)*exp(0.1*t)
- 5060 if xw<xu then xu=xw
- 5070 if xw>xo then xo=xw
- 5080 yw=sin(t)*cos(t)
- 5090 if yw<yu then yu=yw
- 5100 if yw>yo then yo=yw
- 5110 next t:poke 768,139
- 5115 if xu<0 and xo>100*(-xu) then xo=abs(xu)
- 5116 if xo>0 and xu<100*(-xo) then xu=-xo
- 5117 if yu<0 and yo>100*(-yu) then yo=abs(yu)
- 5118 if yo>0 and yu<100*(-yo) then yu=-yo
- 5120 :
- 5130 : return
- 5140 :
- 6000 rem ****** achsen zeichnen ******
- 6010 :
- 6020 xc=int(-xu*xv)
- 6030 yc=199-int(-yu*yv)
- 6040 if xc>=0 then sys 50185,xc,0,xc,199,1
- 6050 if yc>=0 then sys 50185,0,yc,319,yc,1
- 6055 gosub 6400
- 6060 ex=1
- 6070 xb=int(ex*xv)
- 6080 if xb<10 then ex=ex*10:goto 6070
- 6085 if xb>100 then ex=ex/10:goto 6070
- 6090 x=xc
- 6110 if x>=0 and x<320 and yc>2 then sys 50185,x,yc,x,yc-3,1:x=x+xb:goto 6110
- 6115 x=xc-xb
- 6120 if x>=0 and yc>2 then sys 50185,x,yc,x,yc-3,1:x=x-xb:goto 6120
- 6130 :
- 6160 ey=1
- 6170 yb=int(ey*yv)
- 6180 if yb<8 then ey=ey*10:goto 6170
- 6185 if yb>80 then ey=ey/10:goto 6170
- 6190 y=yc
- 6210 if y>=0 and xc<317 then sys 50185,xc,y,xc+3,y,1:y=y-yb:goto 6210
- 6215 y=yc+yb
- 6220 if y<200 and xc<317 then sys 50185,xc,y,xc+3,y,1:y=y+yb:goto 6220
- 6230 :
- 6240 :
- 6250 : return
- 6260 :
- 6400 rem ****** pfeilspitzen ******
- 6410 :
- 6420 if xc<2 or xc>317 then 6450
- 6430 sys 50182,xc-2,2,1:sys 50182,xc-1,1,1
- 6440 sys 50182,xc+1,1,1:sys 50182,xc+2,2,1
- 6450 if yc<2 or yc>197 then return
- 6460 sys 50182,317,yc-2,1:sys 50182,318,yc-1,1
- 6470 sys 50182,318,yc+1,1:sys 50182,317,yc+2,1
- 6500 :
- 6510 : return
- 6520 :
-