PROGRAM FEIGENBAUM (INPUT,OUTPUT,GRAPHIC); (* 10.9.1986 FLORIAN MATTHES *) (* FEIGENBAUEME SIND SOZUSAGEN EINDIMENSIONALE "APFEL- *) (* MAENNCHEN". DIE ENTSTEHENDEN VERAESTELUNGEN STELLEN *) (* EBENFALLS DAS ERGEBNIS EINER ITERATION EINER EINFACHEN *) (* (NICHT KONVERGENTEN) FOLGE DAR: *) (* EINE BELIEBIGE AUSGANGSZAHL A WIRD WIEDERHOLT IN DIE *) (* FOLGENDE FUNKTION EINGESETZT: *) (* F(A):= Y - A*A *) (* NACHDEM MAN DIES EINIGE MALE (N1 MAL) WIEDERHOL HAT, *) (* BETRACHTET MAN DIE FOLGENDEN (N2) FUNKTIONSWERTE F(A). *) (* DABEI WIRD MAN ERSTAUNLICHERWEISE FESTSTELLEN, DASS *) (* TEILWEISE EINE FESTE FOLGE VON ZAHLEN DURCHLAUFEN WIRD.*) (* WELCHES VERHALTEN DIE FUNKTIONSWERTE BESITZEN, HAENGT *) (* STARK VON DER ZAHL Y AB. *) (* ZUR DARSTELLUNG WIRD AM BILDSCHIRM ENTLANG DER Y-ACHSE *) (* DER PARAMETER Y AUFGETRAGEN, WAEHREND PARALLEL ZUR X- *) (* ACHSE DIE N2 FUNKTIONSWERTE AUFGETRAGEN WERDEN. *) (* DABEI KANN DER DARZUSTELLENDE BEREICH IN X- UND Y- *) (* RICHTUNG SOWIE N1 UND N2 FREI GEWAEHLT WERDEN. *) CONST BACK3 = #157 #157 #157; (* CURSOR 3 MAL LINKS *) XMAX = 319; YMAX = 191; VAR AVON,ABIS,YVON,YBIS: REAL; (* BILDAUSSSCHNITT *) A,Y,YSTEP,ASCALE : REAL; (* SKALIERUNGSFAKTOREN*) ZEILE,N1,N2,COUNT :INTEGER; XK :INTEGER; BEGIN WRITELN; WRITE("Y VON :0 ",BACK3); READLN(YVON); WRITE("Y BIS :2 ",BACK3); READLN(YBIS); WRITE("A VON :-2 ",BACK3); READLN(AVON); WRITE("A BIS :3.5",BACK3); READLN(ABIS); WRITE("N1 N2 :50 30",BACK3,BACK3);READLN(N1,N2); ASCALE:= XMAX / (ABIS-AVON); YSTEP := (YBIS-YVON) / YMAX; COLOR(0,2); COLOR(4,2); COLOR(1,1); GRAPHIC(1,1); DISPLAY(1,0,24,"Y="); FOR ZEILE:=0 TO YMAX DO BEGIN Y:= ZEILE*YSTEP+YVON; DISPLAY(1,3,24,STR(Y)); A:=0; FOR COUNT:=1 TO N1 DO A:=Y-A*A; FOR COUNT:=1 TO N2 DO BEGIN A:= Y-A*A; XK:= INT((A-AVON) * ASCALE); DRAW(1,XK,ZEILE,XK,ZEILE); (* PUNKT MALEN *) END; END; DISPLAY(1,0,24,"WEITER MIT BELIEBIGER TASTE"); REPEAT UNTIL KEYPRESSED; GRAPHIC(0); END.