Thema: Schleifen

Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#12

Re: Schleifen

  Alt 3. Dez 2005, 13:43
Hallo,

Dein Code hat ein paar Fehler:
Delphi-Quellcode:
var a,i,c :integer ;
begin
a := -1; //richtung
i := 0; //zähler
//c Ausgabe // 1)
for i := 1 to 80 do // 2)
if i mod 10 = 0 then a := -1 // 3)
else a := 1;
c := c * a ; // 4)
memo1.seltext := (inttostr (c));

end;
Ich hab mal die wichtigsten markiert.
1) c ist nicht initialisiert.
2) Du zählst zwar hoch, aber nur die if-Abfrage. Deine Schleife muss in einen begin..end-Block.
3) Dein Vorzeichen ist immer Positiv, außer die Zahl ist durch Zehn teilbar. Das Vorzeichen muss dann aber wechseln und bis zur nächsten Zehnerzahl so bleiben.
4) c wird nur einmal mit -1 malgenommen und das Ergebnis ausgegeben. Da c nicht initialisiert ist kommt irgendetwas raus.

so stimmts:
Delphi-Quellcode:
var
  a, i, c : Integer;
begin
  a := 1; //richtung
  i := 0; //zähler
  c := 0; //c Ausgabe
  for i := 1 to 40 do // Zwei mal hoch und runter
  begin
    c := c + a; // Zahl um Eins erhöhen/vermindern

    memo1.seltext := IntToStr(c); // Zahl ausgeben

    if i mod 10 = 0 then // wir müssen umdrehen
    begin
      c := c + a; // noch eins weitergehen, damit die nächste Zahl stimmt
      a := a * -1; // Vorzeichen wechseln
    end;
  end;
end;
Gruß
xaromz
  Mit Zitat antworten Zitat