|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.04.2010, 18:13 | #1 |
Новичок
Джуниор
Регистрация: 04.04.2010
Сообщений: 2
|
Не правильная работа for .. to
Не правильно работает for i:=0 to N do
Почему в делфи 6 счётчик работает задом наперёд, типа как for i:=N downto 0 do Это какой-та баг компилятора или что может надо какуюта команду компилятора вставлять что бы отключить оптимизацию кода. Я так понял компилятор думает что в цикле счётчик i не используется и компилет более оптимальный но не верный код. Типа Нц N раз ... Кц Это на алгоритмическом языке. Короче как сделать что бы делфи нормальный код компилел. |
04.04.2010, 18:36 | #2 |
Форумчанин
Регистрация: 09.11.2009
Сообщений: 669
|
Neptunium, может это у вас в коде ошибка, а вы на делфи грешите? Попробуйте простейший пример скомпилировать в новом проекте
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли |
04.04.2010, 18:40 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
программирую на Делфи 6 уже более 3 лет, все работает отменно.
так что показывайте код. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
04.04.2010, 19:03 | #4 |
Новичок
Джуниор
Регистрация: 04.04.2010
Сообщений: 2
|
Код:
и в цикле не используется i не считая индексов массивов то цикл работает НЕПРАВИЛЬНО. Во остальных случаях код компилятся нормально, так что это баг самого компилятора, не правильно оценивает код. Короче прогеры намудрили с оптимизации. Borland DELPHI 6 Enterprise Version 6.0 (Build 6.163) Так что это полюбому ошибка компилятора, и думаю надо искать заплатку, а то задалбывает потом разбирать чо ни работает как надо ПРАВИЛЬНЫЙ алгоритм. |
04.04.2010, 20:33 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
стоп, стоп, стоп.
Цитата:
знали бы ассемблер поняли бы почему так идет, и это и есть оптимизация. странно что в статичных цикла(да и с переменной длиной тоже можно) не используется команда ассемблера loop. вот этого я не понимаю. хех, как показала практика, оптимизатор не идеален. всетаки чистый ассемблер быстрее был бы. а в таких циклах как ваш все должно работать отменно. если не трудно, скиньте код проектом, прикрепив во вложение. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 04.04.2010 в 20:47. |
|
04.04.2010, 23:58 | #6 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
я тоже замечал в delphi 7 2005 что цикл for работает не правильно
это видно когда пошагово выполняеш программу и видно что счетчик цикла не правильно изменяется.. Последний раз редактировалось пауэрлифтинг; 05.04.2010 в 00:00. |
05.04.2010, 00:15 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в Делфи в принципе раскладывает некоторые конструкции так а не иначе.
например Код:
на высоком уровне кодинга, не все так как на низком Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.04.2010, 00:32 | #8 |
Заблокирован
Регистрация: 11.12.2009
Сообщений: 133
|
наверно не правильно он только выводит сщетчик когда пошагово смотриш (клавишей F7 или F8). а работает правильно
Последний раз редактировалось пауэрлифтинг; 05.04.2010 в 00:35. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Правильная установка FPC. | Alex Cones | Софт | 18 | 28.02.2010 23:26 |
правильная ли контекстная диаграмма классов? | matios | Помощь студентам | 0 | 14.12.2009 22:21 |
правильная ли процедура? | aiktz | Помощь студентам | 2 | 11.11.2009 14:12 |
Правильная работа из под Win с прерываниями в МАСМ | Stilet | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 10 | 10.06.2008 15:19 |
Правильная программа? | Надюха | Помощь студентам | 10 | 28.09.2007 14:40 |