Autor Beitrag
Fibonacci
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 19.06.09 08:20 
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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

_________________
We are, we were and will not be.
Krischa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 19.06.09 08:37 
Danke für die Antworten ^^

ausblenden volle Höhe 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..9of integer;
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    function Fibonacci (Index: Integer): Int64;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  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 user profile iconGausi: Code- durch Delphi-Tags ersetzt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:

ausblenden 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;

_________________
We are, we were and will not be.
Krischa
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

Windows 7 64 Bit
Delphi 2007
BeitragVerfasst: 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.
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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

ausblenden volle Höhe 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
 { Private declarations }
public
 { Public declarations }
 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 user profile iconAXMD: Code- durch Delphi-Tags ersetzt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 19.06.09 09:08 
Pseudocode, n bissel was tun sollt ihr schon noch. ;-)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Funktion Fib(n: GanzeZahl): GanzeZahl;
Start
  wenn (n = 0) dann
    ergebnis := 0 // oder 1, je nach dem
  sonst 
    wenn (n = 1) dann
      ergebnis := 1 
    sonst    
      ergebnis := (wie lautet die Rekursionsformel?) Fib(...) + Fib(...);
Ende;

_________________
We are, we were and will not be.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 19.06.09 13:29 
is die rekursionsformel für Fib nicht x_n = x_n-1 + x_n-2??

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 19.06.09 13:54 
Mir ist das klar, aber das wollte ich heute morgen nicht auch noch verraten. :angel:

_________________
We are, we were and will not be.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: 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!

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Fibonacci Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 26.06.09 07:42 
Danke euch nochmal,
wir haben gerade wieder Info und setzen uns mal ran ^^
Lieben Gruß