![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при работе программы, идет остановка, как при трасировке..
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]
>по такому алгоритму весь я его не превожу, так как данный блок просто несколько раз повторяется, меняется только порядок.
Засстрелиться (Соловьев (с))