Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.155 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Pascalsches Dreieck o0

  Alt 27. Mai 2013, 22:46
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?
  Mit Zitat antworten Zitat