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

Форум программистов: 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 сообщение ] 


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

Зарегистрированные пользователи: нет зарегистрированных пользователей


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

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