Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2009, 12:36   #1
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
Вопрос счетчик в цикле изменяется не от 0 до 4 а от 4 до 0

Здрасте.. собствено такое дело есть цыкл
Код:
var a:array [0..3] of boolean;
     b:array [0..3] of integer;
     r, i:integer;
*******
for i:=0 to 3 do
  if a[i]
    then inc(r, b[i]);
при пошаговой компиляцие видно что i изменяется не от 0 до 4 а от 4 до 0, установил обновления.. d7_ent_upd1_1.exe но проблема так и осталася.. с чем это может быть связано??

я понимаю что как вариант можна все цыклы заменить на while но это мне кажется не рацыональным выходом.
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.11.2009, 12:41   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

компилятору так удобнее... это назувается оптимизацией
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2009, 12:58   #3
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

дело в том что такая проблема при использовании прямого цыкла.. при использовании обратного

Код:
for i:=3 downto 0 do
  if a[i]
    then inc(r, b[i]);
i вообще принимает минусовые значения..

поставил дерективу $O вроде все нормально стало.. от только я сути этого косяка так и не понял..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.11.2009, 13:29   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Суть такая: не всё ли равно, какие i будет показывать дебаггер - работает всё нормально, если делать вывод i в самом коде, то будет то, что и ожидается.
Somebody вне форума Ответить с цитированием
Старый 01.11.2009, 15:14   #5
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

код приведенный выше - это всего лишь для примера.. на самом дела там у мення массив более сложной структуры и все это нада записать в файл.. я делаю таким образом: сначала в цыкле копирую все в буферную переменную, а потом с нее пишу.. и если цыкл идет не в том порялке - то соответственно не правильно записываеися в файл и данные становится невозможно прочитать..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.11.2009, 15:25   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

значит меняйте переменную по inc принудительно
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2009, 15:33   #7
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

ереписывать кучу цыклов.. темболее что многие из них имеют 4-х уровневые вложения.. это очень кропотливо..

P.S. raxp прочитай третий пост этой темы.. если не знаешь.. так зачем флудить..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.11.2009, 15:53   #8
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
P.S. raxp прочитай третий пост этой темы.. если не знаешь.. так зачем флудить
- перечитай второй пост.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2009, 15:59   #9
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

читал я второй пост.. именно он и толкнул на мысль написать дерективу оптимизацыи.. от только в чом суть сего действа я так и не понял..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 01.11.2009, 16:07   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

попробуйте директиву
Код:
{$OPTIMIZATION OFF}
локально, перед циклом, а потом включить ее
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик в Паскале NSvirus Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2009 13:06
счетчик Dimati87 Microsoft Office Excel 3 09.04.2009 10:02
счетчик страниц Bogood Помощь студентам 2 07.03.2009 21:44
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54