Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FOR-Schleifen-Start während Durchlauf +1 zählen (https://www.delphipraxis.net/90559-schleifen-start-waehrend-durchlauf-1-zaehlen.html)

Svenkan 19. Apr 2007 13:30


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').

Tyrael Y. 19. Apr 2007 13:31

Re: FOR-Schleifen-Start während Durchlauf +1 zählen
 
Mach es mit einer WHILE Schleife

TonyR 19. Apr 2007 13:32

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!

Svenkan 19. Apr 2007 13:37

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?

sakura 19. Apr 2007 13:38

Re: FOR-Schleifen-Start während Durchlauf +1 zählen
 
Zitat:

Zitat von Svenkan
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?

Ein bisschen Assembler, Pointer-Arithmetik, etc. Dinge die in der Schule nie dran genommen werden und wenn Du die erklären müsstest... Nein, in Pascal/Delphi erlaubt es die Sprache nicht die Schleifenvariabel zu ändern. Das kann der Lehrer dann auch nicht verlangen, da musst Du auf WHILE ausweichen.

...:cat:...

Tormentor32 19. Apr 2007 13:39

Re: FOR-Schleifen-Start während Durchlauf +1 zählen
 
Dann mach doch einfach:
Delphi-Quellcode:
If Zaehler mod 2 <> 0
Edit: Tag korriegiert

mkinzler 19. Apr 2007 13:40

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;

Svenkan 19. Apr 2007 13:47

Re: FOR-Schleifen-Start während Durchlauf +1 zählen
 
Delphi-Quellcode:
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;
Wie setze ich das nun wieder ein?
Weil, wenn ich zaehler=zaehler2 wähle, bekomm ich wieder den gleichen Fehler wie zum Anfang.
Das hatte ich ja auch schonmal ausprobiert...

mkinzler 19. Apr 2007 13:49

Re: FOR-Schleifen-Start während Durchlauf +1 zählen
 
Man sollte den Zähler der Schleife nicht manuell verändern.

Svenkan 19. Apr 2007 13:50

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 13:54 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz