首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求好手解释C++ builder 中Timer的运用

2013-08-09 
求高手解释C++ builder 中Timer的运用要是注释起最后一句NSTEPS++可以出静态的图像,但是不注释就直接报fl

求高手解释C++ builder 中Timer的运用
要是注释起最后一句NSTEPS++;可以出静态的图像,但是不注释就直接报float point devision by zero,很是奇怪,其他的参数也没有错的

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  double * data ;

data=new double[N] ;
Series1->Clear() ;
Series2->Clear() ;
Series3->Clear() ;
Series1->AddArray(data, N-1 ) ;
Series2->AddArray(data, N-1 ) ;
Series3->AddArray(data, N-1 ) ;
Series1->Clear() ;
Series2->Clear() ;
Series3->Clear() ;
for( int ii=0; ii<N; ii++ )
{
Series1->AddX( ii/0.2,"",clBlue ) ;
Series2->AddX( ii/0.2,"",clBlue ) ;
Series3->AddX( ii/0.2,"",clBlue ) ;
 }
Series1->Clear() ;
Series2->Clear() ;
Series3->Clear() ;
for( int ii=0; ii<N; ii++ )
{
Series1->AddY( ii/0.2,"",clBlue ) ;
Series2->AddY( ii/0.2,"",clBlue ) ;
Series3->AddY( ii/0.2,"",clBlue ) ;
}
for (n=1; n<=NSTEPS; n++)
{
T++;
for (k=1; k<KE; k++)
{
dx[k]=dx[k]+ 0.5*(hy[k-1]-hy[k]);
    }

pulse=exp(-0.5*(pow((t0-T)/spread,2.0)));
dx[kc]=dx[kc]+pulse;


for (k=0;k<KE;k++)
{     ex[k]=ga[k]*(dx[k]-ix[k]-sx[k]);
  ix[k]=ix[k]+gb[k]*ex[k];
  sx[k]=del_exp*sx[k]+gc[k]*ex[k];
}
for (k=0;k<KE;k++)
{
   real_part[k]=real_part[k]+cos(arg*T)*ex[k];
   imag_part[k]=imag_part[k]-sin(arg*T)*ex[k];

}

ex[0]=ex_low_m2;
ex_low_m2=ex_low_m1;
ex_low_m1=ex[1];
ex[KE-1]=ex_high_m2;
ex_high_m2=ex_high_m1;
ex_high_m1=ex[KE-2];

for (k=0; k<KE-1;k++)
{ hy[k]=hy[k]+0.5*(ex[k]-ex[k+1]); }
Series1->Clear() ;
Series2->Clear() ;
Series3->Clear() ;
for( int ii=0; ii<N; ii++ )
{
  Series1->AddXY( ii/1.0, ex[ii], "", clRed ) ;
  Series2->AddXY( ii/1.0, hy[ii], "", clBlue ) ;
}


 }
 NSTEPS++;
} C++?builder?timer()


[解决办法]
报这个错float point devision by zero 已经告诉你啦!
你仔细的检查一下所有除法的地方 什么情况下除0了!
[解决办法]
在每个除法操作前对操作数做个断言立马就能找到原因了
[解决办法]
既然已经找到出错的参数了,分步执行看看
[解决办法]
貌似发错版块了?求好手解释C++ builder 中Timer的运用

热点排行