Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 19.10.2017, 22:57   #1
Delphilol
Новичок
 
Регистрация: 19.10.2017
Сообщений: 1
Репутация: 10
По умолчанию [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 в 23:51.
Delphilol вне форума   Ответить с цитированием
Старый 20.10.2017, 00:03   #2
Вадим Мошев
гигаМодератор :)
Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес:
Сообщений: 7,342
Репутация: 3623
По умолчанию

На том шаге, где происходит ошибка, значение выражения
Код:

2*y+sqr(cos(x*y))

у вас отрицательно. Вы его возводите в степень (1/5). Но отрицательные числа нельзя возводить в дробную степень, поэтому происходит ошибка.
Вадим Мошев вне форума   Ответить с цитированием
Старый 20.10.2017, 00:03   #3
type_Oleg
Профессионал
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Адрес: Хазарский каганат
Сообщений: 2,371
Репутация: 1363
По умолчанию

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



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




15:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru