Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Anfänger sucht Hilfe bei ersten Programierschritten

  Alt 15. Dez 2006, 22:18
Guck Dir mal die Syntax für eine FOR-Schleife an:

Beispiel:
Delphi-Quellcode:
For i := 1 to 20 do
  Anweisung;
Die For-Schleife wird genau 20mal durchlaufen, wobei i beim ersten Durchlauf den Wert 1 hat, beim zweiten 2, usw. bis 20.
i wird also vom Startwert 1 aus so oft erhöht, bis es den Wert 20 hat.

Eine Schleife mit Endwert i wobei i auch die Zählvariable ist wie in Deinem Code, ist also falsch.

In Deinem Fall soll wohl das Array durchlaufen werden, also soll i die Werte von 0 bis 4 annehmen.
Überlege Dir selbst, wie Du dann mein Beispiel abändern musst.

Ein Inc(i) ist hier fehl am Platz, da i automatisch beim nächsten Durchlauf um 1 erhöht wird.


Wenn in der Schleife mehrere Anweisungen stehen sollen, musst Du einen begin/end-Block um die Anweisungen machen.

Beispiel:
Delphi-Quellcode:
For i := 1 to 20 do
begin
  Anweisung1;
  Anweisung2;
  usw.
end;
Wenn nur eine Anweisung in der Schleife steht, kannst Du auf begin/end verzichten.



zufallszahl := 0; (am Anfang)
Diesen Wert von zufallszahl verwendest Du nirgends, Du kannst diese Zeile also streichen.
Dasselbe gilt für die Anweisung
i := 0;

[Edit:]
Das Auslesen der ratezahl aus eingabeedt.Text und die ganze IF-Abfrage sollten wohl in die For-Schleife mit rein, da ratezahl sonst den Wert innerhalb der For-Schleife nie ändert.

Zitat von lun87:
Die Zufallszahl wird mit der Zahl des Anwenders verglichen (5 Versuche hat man!)
Dann würde ich allerdings keine For-Schleife verwenden, sondern NUR die repeat/until-Schleife (For-Schleife weglassen).
Die repeat/until-Schleife wird dann verlassen, wenn entweder zufallszahl = ratezahl ist oder der Anwender 5mal geraten hat, also i = 4 ist.
In diesem Fall musst Du dann doch i initialisieren (auf den Startwert 0 setzen, wie es in Deinem Code oben ist) und in der repeat/until-Schleife muss i um 1 erhöht werden, also Inc(i) so wie es war

(sorry dass ich es erst anders geschrieben hatte, aber mir war nicht so ganz klar, was Du mit der For-Schleife bezwecken willst.
Also im Prinzip müsste es klappen, wenn Du die Zeile mit der For-Schleife einfach streichst.)
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat