Autor Beitrag
obbba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP
Delphi 5, C mit Dev-C++, PureBasic
BeitragVerfasst: Sa 15.12.07 22:00 
Ich bin dabei ein Programm um Sudokus herum zu schreiben.
In zwei Zeilen soll herausgefunden werden, in welchem großen Kasten sich ein bestimmtes kleines Kästchen befindet:

ausblenden Delphi-Quelltext
1:
2:
posX := (((x-1) div 3) +1);
posY := (((y-1) div 3) +1);


man könnte auch sagen

ausblenden Delphi-Quelltext
1:
2:
grossX := (((kleinX-1) div 3) +1);
grossY := (((kleinY-1) div 3) +1);


Wenn ich die zweite Zeile als Haltepunkt markiere und dann das programm starte, dann mit der Maus

über grossX gehe, steht da 4599993,
über kleinX gehe, steht da 2,
(x-1) -> (x-1) = 1
((x-1) div 3) -> ((x-1) div 3) = 0
(((x-1) div 3) +1) -> (((x-1) div 3) +1) = 1.
Bei der zweiten Zeile ist es ähnlich: Hier ist grossY = 13048332 und kleinY = 1.

Der Debugger rechnet also richtig, während das Programm falsch rechnet. (?)

Wie krieg ich das Programm dazu die Gleichung korrekt auszurechnen?


(Im Anhang das Beweisfoto)
Einloggen, um Attachments anzusehen!
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: Sa 15.12.07 22:24 
Wenn der aktuelle Haltepunkt auf einer Zeile steht, dann wurde diese Zeile noch nicht ausgeführt.
Drück einfach mal F7 und schau dann ob der Variable der richtige Wert zugewiesen wurde.
obbba Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 18

Win XP
Delphi 5, C mit Dev-C++, PureBasic
BeitragVerfasst: So 16.12.07 14:06 
ok. es hat sich geklärt.
Die zweite Zeile war tatsächlich noch nicht ausgeführt und die erste Zeile wurde wegen einer if-Struktur übersprungen. Ich habe ein Begin-end vergessen