![]() |
FOR-Schleifen-Start während Durchlauf +1 zählen
Hey!
Für eine Berechnung von ausschließlich ungraden Zahlen in einer FOR-Schleife (For zaehler:=start To ende Do Begin) muss 'zaehler' während des Durchlaufs immer schon um 1 erhöht werden, damit er beim nächsten z.B. direkt von 1 auf 3 springt. Weiß jemand, wie das geht? Wenn ichs mit zaehler:=zaehler+1 mache, bekomm ich nur nen Fehler ([Error] Unit1.pas(530): Assignment to FOR-Loop variable 'zaehler'). |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Mach es mit einer WHILE Schleife
|
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Es gibt eine Variante, aber die sollte man glaube ich nicht anwenden...
verwende als Ersatz eine While x=... do - Schleife! |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Das Problem ist, dass ich das für Informatik brauche und es dort mit einer FOR-Schleife gemacht werden muss...
Welche Variante wär das denn? |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Zitat:
...:cat:... |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Dann mach doch einfach:
Delphi-Quellcode:
Edit: Tag korriegiert
If Zaehler mod 2 <> 0
|
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Entkoppele die Laufvariable von der in der Schleife verwendeten.:
Delphi-Quellcode:
For i := 0 to ... do
begin i2 := i*2+1; ... end; |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Delphi-Quellcode:
Wie setze ich das nun wieder ein?
procedure TForm1.Button3Click(Sender: TObject);
var zaehler,zaehler2,ende,start: Integer; zahl: Real; begin start:=StrToInt(Edit12.text); ende:=StrToInt(edit14.Text); zahl:=1; For zaehler:=start To ende Do Begin zahl:=zahl+zaehler; zaehler2:=zaehler+1; end; edit13.text:=FloatToStr(zahl); end; Weil, wenn ich zaehler=zaehler2 wähle, bekomm ich wieder den gleichen Fehler wie zum Anfang. Das hatte ich ja auch schonmal ausprobiert... |
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Man sollte den Zähler der Schleife nicht manuell verändern.
|
Re: FOR-Schleifen-Start während Durchlauf +1 zählen
Gibts denn sonst noch ne Möglichkeit, dass man innerhalb einer Schleife halt nur die ungraden Zahlen addiert?
Das Problem ist, dass ich in der Stunde leider nicht da war und deswegen leider grad vor dem Problem stehe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz