Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 13 из 116<  1 ... 10  11  12  13  14  15  16 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 07.04.2004
Откуда: Планета Земля
Ray Adams
Мля Сорри мне показалось что он работает с формами

_________________
Keyboard not found, press F1 to continue...
Press any key to continue, or another to exit...



Партнер
 

Member
Статус: Не в сети
Регистрация: 04.07.2004
Откуда: Новосибирск
Ray Adams дело в том что close и для файлов работает просто рекуомендуется ее не использовать....

Добавлено спустя 5 минут, 58 секунд:
web-dav так че нельзя так?

_________________
no pain no game!


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Hitman1349 Можно , только проверь чтобы в uses описание Forms шло раньше чем SysUtils и замени все Close на CloseFile.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Можно ли как-то просмотреть содержимое dcu?

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Daemon Есть какие то декомпиляторы, но врядли они нормально смогут воссоздать исходный .pas файл.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ray Adams а точнее никак?

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 30.01.2003
Откуда: Москва
Daemon поищи DeDe (Delphi Decompiler). Более-менее структуру кода выцарапать можно, но сам код будет на асме. Насколько мне известно, еще нет таких прог, которые смогли бы восстановить исходный текст на языке высокого уровня. Хотя это возможно ;)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Asteroid сенкс. Кстати нашел в чем лажа была с методом http://www.sources.ru/delphi/delphi_display_str_in_systemtray.shtml Я удалял объект через DeleteObject, а надо DestroyIcon.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 26.06.2004
Народ, помогите советом: как в Delphi избавиться от ошибки Floating point overflow.
У меня в проге довольно много переменных, и все считается ОК до появления одного сложного выражения.

Пытался лечить следующим образом:
1. Сделал переменными глобальными
2. Весь текст программы перенес в одну процедуру
3. максимально снизил число переменных
Ничего не помогло.

Пишу на Delphi 7. WinXP SP2 и Win 98 SE.


 

Member
Статус: Не в сети
Регистрация: 02.05.2004
Откуда: Tver
скорее всего дельфи нипричем, просто выражение настолько изощренное что промежуточный результат вылетает за пределы FP80. Может быть многократное возведение в степень ? Может быть банальный выход за границы массива. Запусти под отладчиком и попробуй разбить на много более простых выражений, проще искать. Если текст небольшой лучше напиши в форуме, слишком много вариантов чтоб сказать конкретнее


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
приведи где именно вылетает


 

Member
Статус: Не в сети
Регистрация: 26.06.2004
Ray Adams
Сейчас в общем догнал до того что вылетает на первой итерации вычислительного цикла но указатель ошибки ставит в конце проги (end.)

После удаления выражения dz:=vx*dt+ax*dt*dt/2 или x:=x+dz вылетать перестает, так что как я понимаю проблемы с переменной dz или входящей в нее ax, т.к. при ее вычислении используется несколько экспонент.
ax:=e_m*(C1/C2+C3/C2*(exp(2*Pi_L*x)-exp(Pi_L*x)*cos(Pi_L*y)) / (1+exp(2*Pi_L*x)-2*exp(Pi_L*x)*cos(Pi_L*y)))
здесь все кроме x и y сложные константы.


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Часто такое случается из-за того, что переменной не было присвоено значение. Можно отладчиком посмотреть переменные перед выполнением этой строки.

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
а какого типа у тебя dz??? Если поставишь double тоже вылетит? Кажется что просто размер переменной маленький.


 

Member
Статус: Не в сети
Регистрация: 26.06.2004
vor
Самое странное во всем этом, что значения всех этих переменных я сделал весьма маленькими (по сравнению со старыми). Специально отследил все значения, они все порядка 10-100.

Ray Adams
Бесполезно, пробовал все типы. По сути разницы нет, Double по сути есть тип Real не урезанный до Real48 (разрешаюшая способность 15-16 знаков 8 байт), в этом отношении самый прогрессивный тип Extended, но и он мне не помог! Я уже все типы перепробовал.
Короче сейчас всю прогу свел к одному циклу:

while t<10 do begin
ax:=e_m*(C1/C2+C3/C2*(exp(2*Pi_L*x)-exp(Pi_L*x)*cos(Pi_L*y)) / (1+exp(2*Pi_L*x)-2*exp(Pi_L*x)*cos(Pi_L*y)));
ay:=e_m*(C3/C2*( exp(Pi_L*x)*sin(Pi_L*y) )/( 1+exp(2*Pi_L*x)-2*exp(Pi_L*x)*cos(Pi_L*y) ));

dz:=vx*dt+ax*dt*dt/2; // здесь начинает вылетать
vx:=vx+ax*dt;
dy:=vy*dt+ay*dt*dt/2;
vy:=vy+ay*dt;
x:=x+dz; y:=y+dy;
pic.Canvas.Ellipse(round(x*k-1),round(y*k-1),round(x*k+1),round(y*k+1));
t:=t+dt;
end;

Вылетает на первой-же итерации при вычислении dz.

Народ, кто лечил как либо такую фигню, отзовитесь плиз!!!

Мож, кто знает, такие косяки только в Delphi? Мне одни ребята говорили, что С++ Builder этим тоже страдает.
Подскажите правда это или нет. Я имею начальные навыки программирования на С++ (Builder), Fortran, Pascal и Basic, скажите что выбрать чтобы такой бяки не было.


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Silver_Clash
проверь чему равны vx, dt и ax(особенно) перед вычислением dz
типа ShowMessage('vx= '+FloatToStr(vx)+' ; dt= '+FloatToStr(dt)+'; ax= '+FloatToStr(ax));
может они просто слишком большие (больше 10^4096 кажется, если extended)

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 26.06.2004
Lord_of_Darkness
Смотри выше! Я отследил все значения при помощи Watch. Раньше значения действительно были большими, но после исключения некоторой константы порядка 10 в степени 11 (эта константа здесь еще фигурирует - e_m - удельный заряд электрона), порядок переменных снизился до 1 или 2. Тип сейчас стоит Real.

Добавлено спустя 6 минут, 52 секунды:
Lord_of_Darkness
сорьки, кажись ты прав, сейчас опять прогу гоняю, и ax зашкаливает! Странно два часа назад не зашкаливало!


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
А нельзя обойтись без такого удаса вообще? Может оптимизируеш расчет?


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Вот у меня проблемка возникла:
Я пишу прогу и в процессе добавлял нестандартные компоненты при этом размер приложения прилично вырос (почти до 800кб), далее я эти компоненты удалил, но все-равно после компиляции размер аппликухи остается 800кило!
Как бы мне это вылечить???

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Lord_of_Darkness удалить модули этих компонентов(uses главного юнита).

_________________
Ку ку


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 13 из 116<  1 ... 10  11  12  13  14  15  16 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan