AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fibonacci-Zahlen (iterativ)

Ein Thema von Piwi · begonnen am 29. Nov 2003 · letzter Beitrag vom 18. Sep 2007
 
Benutzerbild von Freekill
Freekill

Registriert seit: 18. Sep 2007
1 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Fibonacci-Zahlen (iterativ)

  Alt 18. Sep 2007, 16:12
Zitat von Piwi:
Hallo Delphi-Gemeinde,

ich habe in diesem Programmtext irgend einen Denkfehler drin, der mir nicht auffallen will. Es geht darum, die Fibonacci-Zahl an der Stelle n in der Fibonacci-Reihe darzustellen.

Fibonacci-Zahlen

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

Die nächste Zahl in der Reihe ergibt sich also immer aus der Summe seiner beiden Vorgänger. Rekursiv ist das ganze relativ einfach darzustellen, iterativ wohl auch, aber dort ist ein Denkfehler in meinem Programmtext:

Delphi-Quellcode:
function TForm1.fibonit(n:integer):integer;
var x,y,z,i:integer;
begin
 x:=1;
 y:=1;
 i:=0;
 repeat
 i:=i+1;
 z:=x+y;
 y:=x;
 x:=z;
 until i=(n-1);
end;


procedure TForm1.iterativbuttonClick(Sender: TObject);
var n:integer;
begin
n:=strtoint(edit1.text);
listbox1.items.add(inttostr(fibonit(n)));
end;
Er trägt in die Listbox nach ca. zehnsekündiger Berechnungsphase (!!) eine relativ hohe Zahl ein, selbst wenn ich n=1 wähle. Wo ist der Fehlerteufel?

DANKE IM VORAUS!
Auch wenn der letzte Beitrag hier schon eine ganze Weile her ist, wage ich es den Quelltext für zukünftige Besucher zu korrigieren. Die Abbruchbedingung für die Repeat-Schleife stimmt nicht ganz. Ich musste im Rahmen des Informatiksunterricht selbst die Fibonaccizahlen Iterativ programmieren. Dabei ist mir bei dieser Variante aufgefallen, dass die Abbruchbedingung nicht "until i=(n-1)" sondern "until i=(n-2)" heißen muss. Ansonsten verschieben sich die Zahlen um eine Stelle nach vorn und die Reihe stimmt nicht mehr.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz