→ Для вступления в общество новичков и профессионалов программирования, пожалуйста нажмите здесь ...

Форум программистов: C++, Basic, Delphi, Pascal, JavaScript
Логин: Пароль:
Запомнить?  
@Mail.ru



Начать новую тему Ответить на тему  [ 1 сообщение ] 
POW: overflow error 
Автор Сообщение
Начинающий

Регистрация: 25.04.2011
Сообщения: 1
Языки:

Репутация: 0 [ ? ]
Сообщение POW: overflow error
Помогите, пожалуйста, разобраться с этой ошибкой. Не могу понять в чем дело((
Пошагово программа работает, но как только нужно вернуться к шагу три после прохождения всех шагов.. выдает эту ошибку(

вот код:
long double e1=0.1, e2=0.15,znam,chus, Y1[10], Y2[10], Y3[10],fx,t[10],X1[10],X2[10], X3[10];
long double x4, x5, x6, nx,y1,y2,y3, chus1, chus2, chus3, chus4;
int M=1;
int a, b, c, d, e, f,g, h,k,l;


long double grad1(long double x1, long double x2, long double x3)
{
return y1=a*2*x1+d*x2+e*x3+g;
}
long double grad2(long double x1, long double x2, long double x3)
{
return y2=b*2*x2+d*x1+f*x3+h;
}
long double grad3(long double x1, long double x2, long double x3)
{
return y3=c*2*x3+e*x1+f*x2+k;
}
long double deltaf(long double y1, long double y2, long double y3)
{
return fx=sqrt(pow(y1,2)+pow(y2,2)+pow(y3,2));
}
long double y(long double x1, long double x2, long double x3)
{
return a*pow(x1,2)+b*pow(x2,2)+c*pow(x3,2)+d*x1*x2+f*x2*x3+e*x1*x3+g*x1+h*x2+k*x3+l;
}
long double normax(long double x1, long double x2, long double x3, long double x4, long double x5, long double x6)
{
return nx=sqrt(pow(x4-x1,2)+pow(x5-x2,2)+pow(x6-x3,2));
}

//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{

a = StrToFloat(Edit1->Text);
b = StrToFloat(Edit2->Text);
c = StrToFloat(Edit3->Text);
d = StrToFloat(Edit4->Text);
e = StrToFloat(Edit5->Text);
f = StrToFloat(Edit6->Text);
g = StrToFloat(Edit7->Text);
h = StrToFloat(Edit8->Text);
k = StrToFloat(Edit9->Text);
l = StrToFloat(Edit10->Text);

step1:
X1[0]=0.5, X2[0]=1, X3[0]=0.5;

step2:
{
Y1[M]=grad1(X1[M],X2[M],X3[M]);
Y2[M]=grad2(X1[M],X2[M],X3[M]);
Y3[M]=grad3(X1[M],X2[M],X3[M]);
}
step3:

deltaf(Y1[M],Y2[M],Y3[3]);

step4:
{
if (deltaf(Y1[M],Y2[M],Y3[M])<e1)
{
Label11->Caption=FloatToStr(X1[M]);
Label12->Caption=FloatToStr(X2[M]);
Label13->Caption=FloatToStr(X3[M]);
Label14->Caption=FloatToStr(y(X1[M],X2[M],X3[M]));
}
else goto step5 /*Label11->Caption="next"*/;
}

step5:
{
if (M>=10)
{
Label15->Caption=FloatToStr(X1[M]);
Label16->Caption=FloatToStr(X2[M]);
Label17->Caption=FloatToStr(X3[M]);
Label18->Caption=FloatToStr(y(X1[M],X2[M],X3[M]));
}
else goto step6 /* Label11->Caption="net"*/;
}
step6:
{
chus1=X1[M]*(2*Y1[M]*a+Y2[M]*d+Y3[M]*e);
chus2=X2[M]*(2*Y2[M]*b+Y1[M]*d+Y3[M]*f);
chus3=X3[M]*(2*Y3[M]*c+Y1[M]*e);
chus4=Y1[M]*g+Y2[M]*h+Y3[M]*k;
chus=chus1+chus2+chus3+chus4;
znam=2*Y1[M]*Y1[M]*a+2*Y2[M]*Y2[M]*b+2*Y3[M]*Y3[M]*c+2*Y1[M]*Y2[M]*d+2*Y1[M]*Y3[M]*e+2*Y2[M]*Y3[M]*f;
t[M]=chus/znam;
//t[M]=0.24;
}
step7:
{
X1[M+1]=X1[M]-t[M]*grad1(X1[M],X2[M],X3[M]);
X2[M+1]=X2[M]-t[M]*grad2(X1[M],X2[M],X3[M]);
X3[M+1]=X3[M]-t[M]*grad3(X1[M],X2[M],X3[M]);

Label11->Caption=FloatToStr(t[M]);
Label12->Caption=FloatToStr(X1[M+1]);
Label13->Caption=FloatToStr(X2[M+1]);
Label14->Caption=FloatToStr(X3[M+1]);
}
step8:
{ M++;
normax(X1[M],X2[M],X3[M],X1[M+1],X2[M+1],X3[M+1]);
long double u=y(X1[M],X2[M],X3[M])-y(X1[M+1],X2[M+1],X3[M+1]);
if ((normax(X1[M],X2[M],X3[M],X1[M+1],X2[M+1],X3[M+1])<e2)&&(fabs(u)<e2))
{
Label15->Caption=FloatToStr(y(X1[M+1],X2[M+1],X3[M+1]));
Label16->Caption=FloatToStr(X1[M+1]);
Label17->Caption=FloatToStr(X2[M+1]);
Label18->Caption=FloatToStr(X3[M+1]);
}
else
Label15->Caption="k=k+1";
//M++;
//goto step3;


25.04.2011 23:28
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 


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

Зарегистрированные пользователи: Google [Bot]


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

Перейти:  
cron
© 2013 «Форум программистов Украины»