IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Floating point overflow
nigvil
сообщение 8.12.2009 18:32
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Добрый день. Такая вот проблема при написании программы в Borland Pascal 7.0.
Необходимо решить дифференциальное уравнение и затем вывести решение в виде графика. Однако При запуске программы появляется такая ошибка: "Floating point overflow". Я догадываюсь, что это что-то про плавающую запятую и что, видимо, там перевес или типо этого но как устранить это - я не знаю. Ниже привожу выдержку из программы:

begin
begin
f1:=(3333333-(33333333*Y[2]*0.13))*0.13;
PY[1]:=Y[2];
PY[2]:=(((f1)-300000*0.13)/J);
end;
if f1>300000*0.13 then f1:=300000*0.13;

end;


Причем ругается на f1. Пробывал уменьшать само f1 умноженнием не на 0.13, а на 0.013. Все хорошо. Только вот мне нужно именно такое значение функции при таком большом значении аргумента smile.gif


И еще такой вопрос в тему: есть ли возможность в паскале копировать графики? мне необходимо как-то их вытянуть в документ Word'a.




Подскажите, каковы пути решения проблемы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2009 18:48
Сообщение #2


Гость






Цитата
каковы пути решения проблемы
Попробуй поменять местами множители:
f1:=(3333333-(Y[2]*0.13*33333333))*0.13;
, но все таки в следующий раз приводи хотя бы описания типов переменных, участвующих в вычислениях. А лучше - код полностью. Интересует, в частности, каков тип массива Y, и где именно ругается на F1? У тебя в двух местах вычисление этой переменной.

Цитата
есть ли возможность в паскале копировать графики? мне необходимо как-то их вытянуть в документ Word'a.
В поиске по форуму ищи процедуру для снятия скриншота.
 К началу страницы 
+ Ответить 
nigvil
сообщение 8.12.2009 18:57
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Не понял, о каких множителях вы говорите smile.gif

Привожу описание переменных:

var M1,V1,b,V0:real;
i1,DR,MO,d:integer;
h,t,M,a,J,z : real;
TK,TN,NS,t2,y4,t5,f1 : real;
N,JJ,i,NSS,t4,y3,t6,y5,y6,y7,Gr,x1,u,f11 : longint;
Ns1,t1,y1,t3,y2:string;
out1:text;
y,py,k1,k2,k3,k4,yy : array[0..7] of real;
UM,L,F2,V2,MS,Ms1:real;
dL,C,Fupr,TT,Fk,Ur,Up,Ud,U2,Uust,ust,Id,Iu,eps:real;
Тэги ставь сам, плз. Lapp


Ругается на f1 непосредственно при вычислении (f1:=(3333333-(Y[2]*0.13*33333333))*0.13;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.12.2009 19:18
Сообщение #4


Гость






В таком случае приводи код полностью, со всеми данными, которые надо вводить для того, чтобы повторить ошибку. Надо смотреть, чему перед вычислением F1 равно значение Y[2], например... Или запускай отладчик и ищи ошибку сам, пошаговым прогоном... Я телепатией заниматься не буду.
 К началу страницы 
+ Ответить 
Lapp
сообщение 9.12.2009 6:05
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


А почему бы для начала просто не поменять real на double или extended?
Конечно, числа такого размера - это уже не хорошо, и может быть признаком другой ошибки, но все же..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.07.2025 18:32
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"