Wäre ich ein Lehrer, wäre ich über die Antwort wohl nicht ganz glücklich
Eine for-Schleife erzeugt nicht einfach Zahlen und geht dann nach Hause. Ich würde es so darstellen, dass man in einer for-Schleife einmal
- eine Definition einer Zahlenreihe
- und einen Block an Quellcode, indem jede(!) Zahl aus dieser Zahlenreihe zum Einsatz kommt
hat.
Deine Zahlenreihe geht von 0 bis einschließlich "exponent". Das hast du mit deinem
for i:=0 to exponent
abgedeckt.
Nur wo steckt der zweite Teil? Das ist das, was hinter deinem
do kommt. Und zwar nicht alles was du heute noch schreibst, sondern nur die nächste Anweisung hinter dem
do. Deshalb hatte ich das vorhin auch so eingerückt:
Delphi-Quellcode:
for i:=0
to exponent
do
zeile:=zeile+inttostr(
pas(exponent,i))+'
';
e_ausgabe.Text:=zeile;
Die Zuweisung
zeile:=zeile+inttostr(pas(exponent,i))+' '
wird (exponent+1) mal ausgeführt. In jedem Aufruf ändert sich deine Variable i: Im ersten Aufruf ist sie 0, dann 1, ... und am Schluss ist sie gleich "exponent".
Jetzt wollen wir ja nicht nur in die Variable "zeile" das richtige reinschreiben, wir wollen auch
jedes mal eine Zeile an die Memo anhängen - Wir müssen die For-Schleife nun irgendwie so hinbekommen, dass wir den Teil, der für jeden Eintrag unserer Zahlenreihe ausgeführt wird, auf unser
Memo1.Lines.Add(...)
ausweiten.
Das geschieht mit etwas, das du schonmal gesehen hast:
begin
und
end
. Wahrscheinlich werde ich später über den Haufen geknüppelt, aber drücken wir es vereinfacht einmal so aus: Alles was du zwischen ein
begin
und
end
packst, kommt Delphi wie eine einzelne Anweisung vor.
Baue dir einmal eine Prozedur (z.B. einem Button-Klick) eine for-Schleife die in etwa folgendermaßen aussieht:
Delphi-Quellcode:
for i:=0 to 10 do begin
Memo1.Lines.Add('Mein Wert ist gerade '+IntToStr(i));
Memo1.Lines.Add('Diese Zeile fühlt sich hier wohl');
end;
Memo1.Lines.Add('Diese Zeile kommt ganz zum Schluss... Und das nur ein mal.');
Kommst du damit weiter?