Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2017, 21:57   #1
Delphilol
 
Регистрация: 19.10.2017
Сообщений: 3
По умолчанию [Delphi] Помогите исправить ошибку

Код:
const H=0.4;
var x,y,V:real;
begin
x:=-2.2    ;
while x <= 2.5 do
begin
if (sqr(x)<1) then y:=arctan(x/sqrt(1-x*2))+sqrt(sqr(x)+4.7)
else
if (x>=1) then y:=ln(x+6.7)/ln(5)
else
if (x<=-1) then y:=arctan(x)+sqr(x)-1.035;

V:=power(2*y+sqr(cos(x*y)),1/5)*power(3,2*x*ln(abs(y)+1.2));
Memo1.Lines.Add(floatToStrf(x,fffixed,3,1));
Memo2.Lines.Add(floatToStrf(y,fffixed,5,2));
Memo3.Lines.Add(floattostrf(V,fffixed,5,2));
series1.AddXY(x,V,'');
x:=x+H ;
end;
end;
end.
При проверке делает 3 шага,потом пишет invalid floating point operation
Связано со строчкой V:=power(2*y+sqr(cos(x*y)),1/5)*power(3,2*x*ln(abs(y)+1.2));


Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 19.10.2017 в 22:51.
Delphilol вне форума Ответить с цитированием
Старый 19.10.2017, 23:03   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

На том шаге, где происходит ошибка, значение выражения
Код:
2*y+sqr(cos(x*y))
у вас отрицательно. Вы его возводите в степень (1/5). Но отрицательные числа нельзя возводить в дробную степень, поэтому происходит ошибка.
Вадим Мошев вне форума Ответить с цитированием
Старый 19.10.2017, 23:03   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Наверное выражение 2*y+sqr(cos(x*y)) получилось отрицательным
Поэтому его нельзя в степень 1/5 . И вообще нельзя в Power число <0 в любую степень.
type_Oleg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить ошибку dimons009 Общие вопросы C/C++ 1 16.05.2015 16:36
Помогите исправить ошибку Zurs Помощь студентам 3 11.12.2014 12:00
Помогите исправить ошибку! Ahsim Помощь студентам 1 29.04.2014 19:18