Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при работе программы, идет остановка, как при трасировке..


Страницы:   1 2 3

Elena ©   (2005-02-04 09:55:00) 

Доброе время суток всем. Простите за глупый вопрос, но не знаю куда еще обратиться...
В данном цикле есть много if  вложенных и хоть остановка не стоит , при отладке программы , делфи все равно останавливается. В чем может быть причина ошибка делфи или алгоритма?

while not DM.Table2.Eof do
  begin
    for j:=1 to i do
     begin
       dka:=-1;
       dkp:=-1;
       if then
        begin
          if  условие then
           begin
              dka:=число;
           end;
        end;
       if  условие then
        begin
          if  then
           begin
            dkp:=число
           end
        end;
       if (dka<>-1) and (dkp<>-1) then
        begin
          действие
        end
       else
        begin
          if (dka=-1) and (dkp<>-1) then   
           begin
             действие
           end
          else
           begin
             if (dka<>-1) and (dkp=-1) then
              begin
                действие
              end
           end;
          if (dka=-1) and (dkp=-1) then
           действие
        end;
     end;
    DM.Table2.Next;
  end;

на выделенном if всегда идет остановка....


Elena   (2005-02-07 06:50:00) [1]

Спасибо всем большее, дело в Делфи :-))) А с точностью я поработаю...:-)


programania   (2005-02-04 20:59:00) [2]

Еще бывает что Delphi забывает показывать остановки в тексте,
попробуйте нажать ctrl+alt+B, и удалить все точки остановки del


Digitman   (2005-02-04 17:12:00) [3]

бред какой-то ...

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


Игорь Шевченко   (2005-02-04 16:43:00) [4]


> Мне кажется все-таки дело в делфи


Вряд ли :)

msguns ©   (04.02.05 16:10) [38]


> сделайте массив курсов и
>
>    НЕ МУЧАЙТЕ ДАТАСЕТ !!!


Невыгодно и непроизводительно.

С уважением,


Elena   (2005-02-04 16:21:00) [5]

msguns ©не могу устоять перед такой слезной просьбой и обязательно исправлю, но фишка все же в том что это не влияет на работу проги :-)))) Мне кажется все-таки дело в делфи, так что я иду домой, мучать делфи там :-))))

Спасибо всем большое за помощь :-)))


Elena   (2005-02-04 16:13:00) [6]

msguns ©  проблема в цифре 5 после запятой, одни считают что округлять надо в большую сторону другие в меньшую, т.е. есть уже пример из жизни когда одна и таже прога на разных машинах считает по разному. Вот в этом то и  основная проблема в плане округления...


msguns   (2005-02-04 16:10:00) [7]

И еще. Леночка, сделайте одолжение, осчасливьте старика, заставьте Бога молить,- сделайте массив курсов и

   НЕ МУЧАЙТЕ ДАТАСЕТ !!!

Ну, жалко мне этих бедных созданий. Сердце кровью обливается, когда по ним, как рашпилем, ерзают всякими финдферстами и финднекстами.


Elena   (2005-02-04 16:08:00) [8]

Konstantin_M  очень подозреваю что вы правы, потому что раньше все хорошо работало, но с течением обстоятельств пришлось откатыватся, а по правильному это было сделать лень, точнее просто зашла в копии и правила там, а не в основной папке с кодом, который кстати находится в следующей доработке (поэтому и не стала править в ней...Господи когда пользователи смогут уже точно формулировать то что они хотят....:-)) Скорее всего в этом и проблема, буду разбираться, к сожалению что-то ему еще не нравиться, что не входит в ваш перечень :-))))


msguns   (2005-02-04 16:07:00) [9]

>Elena ©   (04.02.05 16:02) [35]
>msguns ©  мне как раз надо бугалтерию...поэтому и приходиться извращаться....

Так вот про извращение и говорил. Ведь то, что Вы выложили, иначе и назвать-то трудно. Блин, была у меня библиотека с "бухгалтерскими" фичами, но на другой работе.. Там были выверты и с датами, и с периодами, и с округлениями вроде тоже были. Кстати, округление, насколько помню, совсем мало "весило". Если Вы мне напомните правило, я Вам попробую "освежить" его в памяти. Там что-то о знаке после 4, да ?


Elena   (2005-02-04 16:02:00) [10]

msguns © мне как раз надо бугалтерию...поэтому и приходиться извращаться....


msguns   (2005-02-04 15:59:00) [11]

>Elena ©   (04.02.05 15:53) [33]
>Это не совсем корректно, так как в зависимости от сопроцессора машины, винды и делфи округление идет +-1, у меня при это будут теряться тысячи, согласитесь значительная погрешность.....

Я уж умножил сначала !!! Мало на 10000, умножьте на мульон, мульярд.

>например как round оценит 23,5 как 23 или 24 ?

Вам надо по-бухгалтерски или по математически (не смейтесь - разница есть). Если по математически, то я уже все сказал, если бухгалтерски, то да, надо писать свою фичу (может, и есть стандартная, но я про такую не слыхивал). Но я лично сомневаюсь, т.к. Вам, скорее всего надо перевести из тугриков в пиастры, а не вычислять НДС или отчисление в ПФ. Или я не прав ?


Elena   (2005-02-04 15:53:00) [12]

msguns ©  До сотых копейки (как пример):
m := Round(m*10000)/10000;

Это не совсем корректно, так как в зависимости от сопроцессора машины, винды и делфи округление идет +-1, у меня при это будут теряться тысячи, согласитесь значительная погрешность.....

например как round оценит 23,5 как 23 или 24 ?


Konstantin_M   (2005-02-04 15:43:00) [13]

Еще список в <Search path>, нет ли в нем папки со старым DCU.


msguns   (2005-02-04 15:41:00) [14]

>Elena ©   (04.02.05 15:21) [27]
>msguns © не стреляйтесь , пожалуйста, а лучше приведите пример алгоритма корректного округления.....

До сотых копейки (как пример):
m := Round(m*10000)/10000;

А кардинального решения все равно не даст, т.к. в базу запишется флоат, т.е. с "хвостом". Но это не должно волновать, т.к. он будет не ооочень маленьким.


Konstantin_M   (2005-02-04 15:41:00) [15]

Проверить расположение файла .dcu
Project
  Options
     Directories <Unit Output Directory>


Elena   (2005-02-04 15:34:00) [16]

Konstantin_M  а поясните свой ответ, пожалуйста, потому что я не поняла какие мне делать выводы :-))


Konstantin_M   (2005-02-04 15:25:00) [17]

Возможно несоответствие версий файлов  FILE1.PAS и FILE1.DCU.


Elena   (2005-02-04 15:21:00) [18]

msguns © не стреляйтесь , пожалуйста, а лучше приведите пример алгоритма корректного округления.....


Elena   (2005-02-04 15:16:00) [19]

msguns ©   (04.02.05 14:29) [21]
А вот почему нельзя загнать текущие курсы в массив и шариться по нему, вместо того чтобы прыгать по таблице ? Ведь валют не может быть тысячи, как и счетов (если это не банк, конечно)

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


msguns   (2005-02-04 15:11:00) [20]

>Elena ©   (04.02.05 14:49) [24]
>по такому алгоритму  весь я его не превожу, так как данный блок просто несколько раз повторяется, меняется только порядок.

Засстрелиться (Соловьев (с))


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо