AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

for-Schleife läuft nicht richtig ?

Ein Thema von dEluXe · begonnen am 3. Dez 2004 · letzter Beitrag vom 4. Dez 2004
Antwort Antwort
Benutzerbild von dEluXe
dEluXe

Registriert seit: 30. Sep 2004
Ort: Berlin
12 Beiträge
 
Delphi 5 Enterprise
 
#1

for-Schleife läuft nicht richtig ?

  Alt 3. Dez 2004, 21:26
HiHo,

hab da mal ein merkwürdiges Problem.

Also ich hab in meinem Programm im onCreate-Ereignis (und auch noch in anderen Prozeduren) eine for-Schleife eingebaut (eigentlich 2, die ineinander laufen):

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
 x, y: Integer;
begin
 for x := 1 to 16 do
  begin
   for y := 1 to 16 do
    begin
     array_xyz[x,y].wert := 0;
    end;
  end;
end;
eigentlich müsste er jetzt doch in den einzelnen Schleifen jeweils die Variable x/y von 1 hochzählen bis auf 16 !

aber wenn ich jetzt in Einzelschritten die Prozedur durchlaufe und die Werte der Variablen überprüfe, fangen beide Schleifen nicht bei 1 sondern bei 16 an zu zählen und gehen bis zur 1 runter.

Meiner Meinung nach hat das aber sonst immer richtig (1 -> X) funktioniert.

Weiß einer wodran das liegen kann ?

Vielen Dank im Voraus

dEluXe
Ich bin nicht schizophren, ich bin schon eine ganze Gruppe
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: for-Schleife läuft nicht richtig ?

  Alt 3. Dez 2004, 21:27
So etwas habe ich auch schon festgestellt. aber nicht immer der Fall, deshalb denke ich, das es eine Optimierung des Compilers ist.
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: for-Schleife läuft nicht richtig ?

  Alt 3. Dez 2004, 21:29
Delphi optimiert die Schleife. Und wenn es günstiger ist runterzuzählen statt hoch und es keinen unterschied macht, dann läßt der Compiler die Schleife anders rum laufen.

Es ist nämlich in ASM einfacher ein Register auf 0 zu prüfen, als zwei Werte miteinander zu vergleichen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von dEluXe
dEluXe

Registriert seit: 30. Sep 2004
Ort: Berlin
12 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: for-Schleife läuft nicht richtig ?

  Alt 3. Dez 2004, 21:53
Ahhh...

Das hört sich gut an. Bei mir wird halt bloss ein array gefüllt also isses ja egal in welcher Richtung das abläuft.

Vielen Dank für die schnellen Antworten

dEluXe
Ich bin nicht schizophren, ich bin schon eine ganze Gruppe
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#5

Re: for-Schleife läuft nicht richtig ?

  Alt 4. Dez 2004, 12:46
versuchs mal mit until repeat
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: for-Schleife läuft nicht richtig ?

  Alt 4. Dez 2004, 12:53
Erstens heißt es repeat until
Zweitens wird die Optimierung AFAIK auch bei einer repeat until-Schleife zuschlagen. Die Compileroptimierung kannst du aber auch in den Optionen ausschalten, leider weiß ich im Moment nicht genau wo...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.
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