Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Fibonacci - Rechner
xsus - Do 13.10.11 16:15
Titel: Fibonacci - Rechner
Hallo,
ich bin grade mächtig am verzweifeln, beim Schreiben eines Programms, welches mir Fibonacci Zahlen ausrechnet.
Es soll so aussehen, dass er mir bestimmte Fibonacci Zahlen ausrechnet, nicht alle.
Mein Quelltext bislang lautet:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| program Fibonacci;
{$APPTYPE CONSOLE}
uses SysUtils;
var t,n, Fletzte, Fvorletzte, Faktuell:integer;
begin writeln ('Zahl: '); readln (n); Fvorletzte:=1; Fletzte:=1; for t:=1 to n do Faktuell:=Fletzte+Fvorletzte; Fletzte:=Fvorletzte; Fvorletzte:=Faktuell; writeln (Faktuell); readln; end. |
Was mache ich denn falsch? Er zeigt mir immerhin immer 2 als ergebnis an ;)
Liebe Grüße und schonmal vielen Dank ;)
Ralf Jansen - Do 13.10.11 16:27
Weil deine for-Schleife nur die Zeile 17 einschließt. Was von der for-Schleife ausgeführt wird wird nicht durch passend einrücken bestimmt sondern durch einen begin-end Block.
xsus - Do 13.10.11 16:36
Danke erstmal. Funktioniert, habe sogar noch nen Fehler in Zeile 16 gefunden gehabt ;)
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:
| program Fibonacci;
{$APPTYPE CONSOLE}
uses SysUtils;
var t,n, Fletzte, Fvorletzte, Faktuell:integer;
begin writeln ('Zahl: '); readln (n); Fvorletzte:=1; Fletzte:=1; for t:=3 to n do begin Faktuell:=Fletzte+Fvorletzte; Fletzte:=Fvorletzte; Fvorletzte:=Faktuell; end; writeln (Faktuell); readln; end. |
Ich erhalte jetzt aber dennoch einen Warnhinweis: Zeile 22, Faktuell ist mögl. nicht initialisiert worden, was mach ich noch dagegen? LG
Ralf Jansen - Do 13.10.11 16:42
Zitat: |
Warnhinweis: Zeile 22, Faktuell ist mögl. nicht initialisiert worden, was mach ich noch dagegen |
Bei der Meldung? Faktuell initialisieren! Was sonst ;)
Faktuell wird nur in der Schleife gesetzt und je nach Wert für n wird die nie durchlaufen und dann ist Faktuell eben uninitialisiert(Was sollte dann dein writeln (Faktuell) ausgeben?). Setze Faktuell vor der Schleife auf einen Startwert z.B. 0;
xsus - Do 13.10.11 16:45
Dankeschön, sorry ich bin totaler anfänger ;D
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!