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:
Delphi-Quelltext
1: 2:
| posX := (((x-1) div 3) +1); posY := (((y-1) div 3) +1); |
man könnte auch sagen
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)