Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bedingung bleibt unbeachtet (https://www.delphipraxis.net/60428-bedingung-bleibt-unbeachtet.html)

LiS 6. Jan 2006 17:37


Bedingung bleibt unbeachtet
 
Hallo!

Ich habe ein ziemlich seltsames Problem mit meinem Programm: Ich habe einige Schleifen und darin eine 2 if-Abfragen. Nur ist es leider dem Programm wohl egal, ob die Bedingungen wahr sind, oder nicht. Es führt die folgenden Anweisungen nur manchmal aus. Hab es extra mal alles auseinandergefriemelt, zum tracen:

Hier die Stelle im Programm:

Delphi-Quellcode:
  for k := 1 to 9 do for i := 1 to 9 do
  begin
    save := 0;
    for j := 1 to 9 do
    begin
      if Sudoku[i,j] = 0 then              // Diese hier!
      begin
        if Kandidaten[i,j,k] = true then   // Und die!
        begin
          if save=0 then
          begin
            save:=j
          end
          else
          begin
            save:=-1;
          end;
        end;
      end;
    end;
    if save>=1 then
    begin
      Sudoku[i,save] := k;
      gesetzt := true;
    end;
  end;
Selbst wenn ich beim tracen genau vorher die Maus auf z.B. Sudoku[i,j] halte und er zeigt an "Sudoku[i,j] = 0" springt er manchmal trotzdem gleich zum end. Kennt jemand dieses Problem? Es wäre sehr nett wenn mir jemand helfen kann!

LiS

faux 6. Jan 2006 17:45

Re: Bedingung bleibt unbeachtet
 
Hallo!

Hast dus schon mal mit dem "Auswerten/Ändern" Dialog versucht (Ctrl+F7 bzw Start -> Auswerten/Ändern)? Vielleicht ist der Wert wirklich anders als du denkst... ;)

Grüße
Faux

Luckie 6. Jan 2006 17:47

Re: Bedingung bleibt unbeachtet
 
Werden die Bedigungen denn je erfüllt?

LiS 6. Jan 2006 17:50

Re: Bedingung bleibt unbeachtet
 
Die Bedingungen sind ganz sicher manchmal erfüllt und die Werte sind auch so wie sie sein sollen. Daran kann es nicht liegen...

Amateurprofi 6. Jan 2006 23:45

Re: Bedingung bleibt unbeachtet
 
Ich denke da kann Dir so einfach keiner helfen, wenn nicht überprüft werden kann, wie die Felder, die in den If ... then Zeilen angesprochen werden, gefüllt sind.
Stell doch mal das ganze Programm hier rein und beschreibe unter welchen Bedingungen der vermeintliche Fehler auftritt. Vielleicht findet sich jemand, der das testet......

Sir Rufo 7. Jan 2006 02:10

Re: Bedingung bleibt unbeachtet
 
Bitte überprüfe doch mal beim tracen welchen wert j hat, wenn der einfach so zum end springt. ich vermute mal, j hat in diesem fall den wert 10 und deshalb springt er dann weg ... ;-)

cu

sir-archimedes 7. Jan 2006 07:00

Re: Bedingung bleibt unbeachtet
 
Gehe mal in die Projektoptionen=>Compiler und schalte die Optimierung aus. Denn wenn der Code optimiert wird, werden for-Schleifen auch manchmal in anderer Reihenfolge durchlaufen und das debuggen fällt schwer...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 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