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

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

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

 
 Ответить  Открыть новую тему 
> invalid floating point operation
сообщение
Сообщение #1


Новичок
*

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

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


Задача вычислить значение y соответствующие каждому значению х(хn<=x<=xk,шаг изменения равен dx) по формуле у=корень третей степени из((abs(a-sqr(x))*ln(a+x))деленное на (корень третей степени из sqr(x) +корень 5ой степени из a).вычислить сумму значений у,произведение отрицательных у,кол-во отрицательных у,контрольный расчет провести при а=2.17,xn=-1.5.dx=0.2
МОя задача:
program afg;  uses crt;
var x,y,pro,sum,otr:extended;i:integer;
begin
pro:=1;otr:=0;
sum:=0;x:=-1.5;
while x<=0.2 do begin
y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5);
sum:=sum+y;
if y<0 then otr:=otr+1;pro:=pro*y;
end;
write('pro= ',pro:10:3,'otricatelnyh= ',otr,'summa= ',sum:10:3);
readkey;end.


помогите найти ошибку(
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

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

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


Помогите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

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

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


"каждому значению х(хn<=x<=xk,шаг изменения равен dx)"
Вот это ты не делаешь. У тебя в программе нет изменения x

y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5);

И при значении x=-1.5 сразу выкидывает с ошибкой. Проверяй правильно ли написал формулы. По той записи, что ты привел, понять затруднительно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Цитата(Ozzя @ 14.12.2009 9:33) *

"каждому значению х(хn<=x<=xk,шаг изменения равен dx)"
Вот это ты не делаешь. У тебя в программе нет изменения x

y:=(exp(ln(abs(2.17-sqr(x))*ln(2.17+x)/3)))/exp(ln(sqr(x)/3))+exp(ln(2.17)/5);

И при значении x=-1.5 сразу выкидывает с ошибкой. Проверяй правильно ли написал формулы. По той записи, что ты привел, понять затруднительно.


dx -шаг есть изменения,сейчас выложу формулу
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Вот формула


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






В твоем случае нельзя пользоваться формулой
xa = Exp(a*Ln(x)) для вычисления кубического корня в числителе, поскольку под корнем отрицательное число(Ln(a+x) = Ln(2.17-1.5) = Ln(0.67) = -0.4, умноженное на модуль - в любом случае будет отрицательный результат), а Ln() от отрицательного числа - "это фантастика" (С). Пользуйся другим методом... Например, проверяй, является ли подкоренное выражение отрицательным потом вычисляй кубический корень из МОДУЛЯ, а знак результата устанавливай в зависимости от проверки на отрицательность...
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 25.04.2024 12:50
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name