Autor Beitrag
Die letzte Tröte
Hält's aus hier
Beiträge: 2

Win XP
6.0
BeitragVerfasst: Do 05.05.05 21:09 
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.

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