![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Бродяжник |
![]()
Сообщение
#1
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Пишу я маленькую программку на Delphi 3. В этой программе у меня есть двумерный массив 4х4, заполненный цифрами от 0 до 15 (угадайте, что за прога?). И мне нужно проверить, расположены ли эти цифры в массиве таким вот образом:
Цитата 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 (...правильно! игра в "15") Я, не особо крутой программер, решил этот вопрос примерно так: Код i:=1; result := false; for х:=1 to 4 do for у:=1 to 4 do begin if i<16 then begin if pole[x][y] <> i then exit; i := i+1; end; end; result := true; imho должно работать. Не работает! Лезу в отладчик, смотрю значения переменных х и у. Что за лажа... в первой же итерации х=4, и у=4. Во второй итерации х=3, у=4. Протираю глаза, смотрю в код - да нет же! У меня там нет никакого downto! А прога работает так, будто у меня цикл построен с убыванием индексов. Ладно. Может, я и идиот. Вывожу значения х не только в отладчике, а еще пишу их в caption формы. Ага! Теперь х пошел от 1 до 4, а вот у по-прежнему считается от 4 до 1. Нормально? Если я в программе написал for y:=1 to 4 do, то я вообще-то рассчитываю, что программа именно это и сделает! Даже если я отвернулся! ;) И не компиляторова ума это дело втихаря мой код переиначивать! Даже если он дурацкий! Что ли, отключить оптимизацию в опциях компилятора?... ...слегка поостыв, вижу в своем коде ошибочку... таки я идиот... циклы по х и по у надо поменять местами. Меняю... Опа! Прога заработала, так, как я и хотел. Но почему в отладчике индексы идут по-прежнему "задом наперед"??? Это ж еще зачем???? Чтобы не быть голословным, даю скриншот. Самая первая итерация цикла. По замыслу должно быть х=1, у=1, i=1, Pole[x][y]=1. В отладчике - то, что на скрине. х=4, у=4, i=1, Pole[x][y]=0. Но прога при этом работает "по замыслу", вот что меня убивает. Если бы отладчик был прав, то был бы выход из процедуры. А его не происходит. Не, забью я на программирование... пойду в балерины... Сообщение отредактировано: Бродяжник - 24.09.2004 12:30 Эскизы прикрепленных изображений ![]() |
![]() ![]() |
![]() |
Текстовая версия | 3.08.2025 20:09 |