Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Fibonacci-Folge - HELP
Fibonacci - Fr 19.06.09 08:20
Titel: Fibonacci-Folge - HELP
Guten Morgen!
Wir sitzen hier gerade im Infounterricht und sind mehr oder weniger am verzweifeln.... ;-)
Wir haben viel verpasst und haben nun große Probleme mit Delphi ... da nun bald Ferien sind, haben wir das große Vergnügen die Fibonaccifolge zu programmieren.
Haben uns viel im Internet informiert & auch einige nützliche Codes gefunden... aber so richtig funzen will irgendwie nichts ;-)
Kann uns einer den kompletten Quelltext programmieren?
Wir wissen wie dreist das klingt, aber wir sitzen schon echt lange dran, und es ist wirklich zum verzweifeln! xD
Für irgendwelche Lösungsansätze oder Tipps wären wir auch sehr dankbar!
Wir brauchen es einmal Iterativ und Dynamisch...
Lieben Gruß
Gausi - Fr 19.06.09 08:25
Hallo und :welcome: in der Entwickler-Ecke,
wie sehen denn die Codes aus, die nicht funktionieren? Und wie zeigt es sich, dass die nicht funktionieren? Denn man kann da sicherlich drauf aufbauen und die Fehler finden, was euch deutlich mehr bringen dürfte als einen fertigen Code zu bekommen. :D
Krischa - Fr 19.06.09 08:30
Hi,
man muss schon sehr viel verpasst haben damit man die Fibo-Folge nicht hin bekommt. Kompletten Code wird es höchst wahrscheinlich nicht geben oder wenn dann nur gegen bezahlung. Hier gibt es nur Hilfe wenn beim SELBER-PROGRAMMIEREN Probleme auftauchen. Also versucht es lieber selber und bei Fragen einfach mal euren Code posten.
Fibonacci - Fr 19.06.09 08:37
Danke für die Antworten ^^
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type feldtyp=array[1..9] of integer; TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; function Fibonacci (Index: Integer): Int64; procedure Button1Click(Sender: TObject); private
public end;
var Form1: TForm1; Index: Integer;
implementation
{$R *.dfm}
function Fibonacci (Index: Integer): Int64; function Fibonaccihelp (f1, f2, n: Integer): Integer; begin if n=0 then Result := f1 else Result:=Fibonaccihelp (f2, f1+f2, n-1); end; begin case Index of 1,2: Result :=1; else Result := Fibonaccihelp (0,1,Index); end; end;
procedure TForm1.Button1Click(Sender: TObject); var ausgabe:feldtyp; i:integer; begin for i:=1 to 9 do ausgabe:=Fibonacci(Index); for i:=1 to 9 do begin memo1.Lines.Add(inttostr(ausgabe[i])) ; end; end; end. |
Nicht lachen! :O :P
Moderiert von
Gausi: Code- durch Delphi-Tags ersetzt
Gausi - Fr 19.06.09 08:48
Da gibt es nichts zu lachen. ;-)
Der Hauptteil ist ja richtig - die Berechnung der Fibonacci-Zahlen (
in der rekursiven Variante, ach ne, das ist ja iterativ. Imho zwar etwas umständlich so, aber es geht.). Was -äh- etwas kreativ ist, ist die Ausgabe. Da könnte man einfach so machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); var index:integer; begin for Index:=1 to 9 do memo1.Lines.Add(inttostr( Fibonacci(Index) ) ); end; |
Krischa - Fr 19.06.09 08:51
Und wenn man es besonders schön machen will liest man die Länge der Fibonacci-Folge aus einem Edit-Feld ein und ersetzt das Ende der Schleife durch diesen Wert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); var index,ende:integer; begin ende:=strtoint(edit1.text); for Index:=1 to ende do memo1.Lines.Add(inttostr( Fibonacci(Index) ) ); end; |
Fibonacci - Fr 19.06.09 08:58
Hey, nochmal vielen Dank für eure Antworten!
Wir haben noch ein bisschen rumgebastelt (bzw nochmal neu angefangen :D), und es funktioniert <3
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Fibonacci(n:integer); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation {$R *.dfm}
procedure Tform1.Fibonacci(n:integer); var k, Fletzte, Fvorletzte, Faktuell:integer;
begin Fvorletzte:=1; Fletzte:=1; for k:=1 to n do begin Faktuell:=Fletzte+Fvorletzte; Fletzte:=Fvorletzte; Fvorletzte:=Faktuell; memo1.lines.add(inttostr(Faktuell)); end; end;
procedure TForm1.Button1Click(Sender: TObject); var ausgang:integer;
begin ausgang:= StrToInt(Edit1.Text); Fibonacci(ausgang); end;
end. |
Nun brauchen wir es rekursiv... Hilfe!? :D
Gruß
Moderiert von
AXMD: Code- durch Delphi-Tags ersetzt
Gausi - Fr 19.06.09 09:08
Pseudocode, n bissel was tun sollt ihr schon noch. ;-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Funktion Fib(n: GanzeZahl): GanzeZahl; Start wenn (n = 0) dann ergebnis := 0 sonst wenn (n = 1) dann ergebnis := 1 sonst ergebnis := (wie lautet die Rekursionsformel?) Fib(...) + Fib(...); Ende; |
elundril - Fr 19.06.09 13:29
is die rekursionsformel für Fib nicht x_n = x_n-1 + x_n-2??
Gausi - Fr 19.06.09 13:54
Mir ist das klar, aber das wollte ich heute morgen nicht auch noch verraten. :angel:
elundril - Fr 19.06.09 14:15
:oops: scusi! Wir sind in der Vorlesung grad bei Rekursionsformeln (eig. ja Differenzengleichungen) und da wollt ich mal mein Wissen überprüfen. Sorry!
Fibonacci - Fr 26.06.09 07:42
Danke euch nochmal,
wir haben gerade wieder Info und setzen uns mal ran ^^
Lieben Gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!