Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem bei kleinem Prog mit Schleife


sPeeD2k5 - Mi 25.01.06 23:20
Titel: Problem bei kleinem Prog mit Schleife
Hi Leutz!

Also das Programm soll einfach die Dauer berechnen wie lang man sparen muss und ich find den Fehler einfach nicht, da er mir keine Dauer ausspuckt


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
var TG,Preis,Dauer,Guthaben : Integer;
begin
TG:=StrtoInt(EdTaschengeld.Text);
Preis:=StrtoInt(EdPreis.text);
Dauer:=0;
Guthaben:=0;
repeat
Guthaben:=Guthaben+TG;
Dauer:=(Dauer+1);
until (Preis<=Guthaben);
EdDauer.Text:=InttoStr(Dauer);
end;


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


Christian S. - Mi 25.01.06 23:26

Hi!

Sei so gut und wähle doch bitte einen anderen Titel. Der jetzige sagt nicht allzu viel drüber aus, was das Thema dieses Threads ist.

Danke! :-)

Grüße
Christian


sPeeD2k5 - Mi 25.01.06 23:28

sry... aber anstatt über den titel zu meckern wärs ne antwort sinnvoller ;)


Blackbird - Mi 25.01.06 23:53

@speed2k5:

1. Wenn du von einem Mitglied des Forums darauf hingewiesen wirst, den Titel zu ändern weil er unpassend ist, dann hat das nix mit Meckern zu tun. Es ist von Nachteil, wenn man einen Titel wählt, der das Problem nur unzureichend beschreibt!

2. Zu deiner Frage: Du hast das Problem ja schon erkannt. Es liegt in der Schleife, die erst dann beendet wird, wenn Preis <= Guthaben. Das wird bei dir aber nie passieren, weil innerhalb der Schleife weder "Preis" noch "Guthaben" verändert wird.


sPeeD2k5 - Do 26.01.06 00:02

aber Guthaben+TG verändert doch eigentlich den eigentlichen wert von Guthaben um TG...
wie kann ich es dann lösen?

//und sry nochma wegen dem ton...


mkinzler - Do 26.01.06 00:06

Versuch mal die Abbruchbedingung umzudrehen

Delphi-Quelltext
1:
2:
3:
...
until (Guthaben >= Preis);
...


sPeeD2k5 - Do 26.01.06 00:17

funktioniert leider auch nicht :/ versteh auch nicht warum sich guthaben nicht ändern soll Oo


mkinzler - Do 26.01.06 00:26

Eigentlich sieht alles ok aus.
Hast du dein Programm mal im Debugger angeschaut, um zu shen wie die Werte sich verändern.
GGf Untilschleife durch whileschleife ersetzen.


WolfB - Do 26.01.06 01:09

hm. ich habe da auch keinen fehler gefunden und die prozedur einfach mal selbst getestet. bei mir klappt alles wie es sollte. hast du vielleicht irgendwas mit den eingaben falsch? oder mit der ausgabe?