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