Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Programm zum Berechnen der gezüchteten Kaninchenmenge


Die letzte Tröte - Do 05.05.05 21:09
Titel: Programm zum Berechnen der gezüchteten Kaninchenmenge
Also Hallo erst mal, ich bin neu hier :D und hab direkt ein kleineres Problem:
Ich habe seit einem knappen Jahr Informatikuntericht und in einer Woche schreiben wir eine Arbeit über Rekursion und Iteration.
Ich habe zum Üben einen rekursiven Code geschrieben, der die Menge der gezüchteten Kaninchen in einer Bestimmten Monatsanzahl berechnet.
Ausgegangen wird von Folgendem:
-2 Kaninchen zeugen alle 2 Monate 2 neue.
-Die Neugeborenen sind in den ersten 2 Monaten noch zeugungsunfähig.
-Gestartet wird mit 2 frischgezeugten Kaninchen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure rechnung(Monate: Integer);
var alt,neu: Integer;
        begin
                alt:=0;
                neu:=2;
                        if Monate > 0 then
                                begin
                                        Monate:=Monate-2;
                                        rechnung(Monate);
                                        form1.sp_ergebnis.Value:=alt+neu;
                                        alt:=neu;
                                        neu:=form1.sp_ergebnis.Value;
                                end
end;


Ich hab schon meinen Kumpel gefragt doch der sieht auch keinen fehler. Eigentlich ist es ein ganz einfaches Script aber irgendwie find ich den Hacken nicht, es kommt ab der Eingabe von 2 Monaten immer 2 Raus.
Es gibt immer 2 Hints:
[Hint] Unit1.pas(12): Value assigned to 'neu' never used
[Hint] Unit1.pas(11): Value assigned to 'alt' never used

Diese kann ich mir nicht so ganz erklären, weil ich benutz die Werte ja...

Sorry ich habs selber bemerkt...die Werte neu und alt werden in jeder rekusiven Procedure wieder als 0 und 2 definiert, dass war der Fehler.