mhdmkl
29-10-2011, 08:54
باسلام خدمت دوستان
من یک برنامه cبه صورت زیر نوشته ام ولی در حین اجرای آن با کامپایلر turboدچار مشکل می شوم لطفاً راهنمایی کنید
#include<stdio.h>
#include<math.h>
#define time 20.0
#define space 50.0
#define nsn 6
#define ntn 6
#define velocity 3.0
float p(float x)
{float f;
int w;
if(x>=8&&x<=28) w=-1;
else if(x>=28&&x<=38) w=1;
else w=0;
f=2+(w*(1+(0.3*(sin((3.14*x)/5))))*(1+(0.4*sin((4*3.14)/25))));
return(f);
}
main(){
int i,j,k;
float s,z,d,r,c,a[nsn][nsn],u[ntn][nsn],b[nsn],q,y;
k=1;
i=1;
j=1;
d=space/(nsn-1.0);
printf("d=%f",d);
r=time/(ntn-1.0);
printf("\nr=%f",r);
c=(velocity*r)/d;
printf("\nc=%f",c);
s=1-3*c;
printf("\ns=%f",s);
z=1+3*c;
printf("\nz=%f",z);
while(k<=ntn-1){
while(j<=nsn)
{while(i<=nsn)
{if(i==j+1) a[i][j]=s;
else if(i==j) a[i][j]=4;
else if(j==i+1) a[i][j]=z;
else a[i][j]=0;
printf("\na[%d][%d]=%f",i,j,a[i][j]);
i=i+1;}
j=j+1;
i=1;
}
j=1;
while(j<=nsn)
{if(k==1) u[k][j]=p(j*d);
else if(j==0) b[j]=4*u[k][j]+u[k][j+1];
else if(j==nsn) b[j]=u[k][j-1];
else b[j]=u[k][j-1]+4*u[k][j]+u[k][j+1];
j=j+1;}
i=nsn;
while(i>=2){
q=a[i][i]-((a[i][i-1]/a[i-1][i-1])*a[i-1][i]);
y=b[i]-((b[i]/a[i-1][i])*b[i-1]);
if(i==nsn) u[k+1][nsn]=(y/q);
else u[k+1][i]=(y-((a[i][i+1]*u[k+1][i+1])/q));
printf("\nu[%d][%d]=%f",k+1,i,u[k+1][i]);
i=i-1;
}
k=k+1;}
j=5;
return 0;
}
همه سمی کالم ها ،پرانتزها و آکلاد ها در انتهای جمله ست تو اینجا افتاده سمت چپ
باتشکر
من یک برنامه cبه صورت زیر نوشته ام ولی در حین اجرای آن با کامپایلر turboدچار مشکل می شوم لطفاً راهنمایی کنید
#include<stdio.h>
#include<math.h>
#define time 20.0
#define space 50.0
#define nsn 6
#define ntn 6
#define velocity 3.0
float p(float x)
{float f;
int w;
if(x>=8&&x<=28) w=-1;
else if(x>=28&&x<=38) w=1;
else w=0;
f=2+(w*(1+(0.3*(sin((3.14*x)/5))))*(1+(0.4*sin((4*3.14)/25))));
return(f);
}
main(){
int i,j,k;
float s,z,d,r,c,a[nsn][nsn],u[ntn][nsn],b[nsn],q,y;
k=1;
i=1;
j=1;
d=space/(nsn-1.0);
printf("d=%f",d);
r=time/(ntn-1.0);
printf("\nr=%f",r);
c=(velocity*r)/d;
printf("\nc=%f",c);
s=1-3*c;
printf("\ns=%f",s);
z=1+3*c;
printf("\nz=%f",z);
while(k<=ntn-1){
while(j<=nsn)
{while(i<=nsn)
{if(i==j+1) a[i][j]=s;
else if(i==j) a[i][j]=4;
else if(j==i+1) a[i][j]=z;
else a[i][j]=0;
printf("\na[%d][%d]=%f",i,j,a[i][j]);
i=i+1;}
j=j+1;
i=1;
}
j=1;
while(j<=nsn)
{if(k==1) u[k][j]=p(j*d);
else if(j==0) b[j]=4*u[k][j]+u[k][j+1];
else if(j==nsn) b[j]=u[k][j-1];
else b[j]=u[k][j-1]+4*u[k][j]+u[k][j+1];
j=j+1;}
i=nsn;
while(i>=2){
q=a[i][i]-((a[i][i-1]/a[i-1][i-1])*a[i-1][i]);
y=b[i]-((b[i]/a[i-1][i])*b[i-1]);
if(i==nsn) u[k+1][nsn]=(y/q);
else u[k+1][i]=(y-((a[i][i+1]*u[k+1][i+1])/q));
printf("\nu[%d][%d]=%f",k+1,i,u[k+1][i]);
i=i-1;
}
k=k+1;}
j=5;
return 0;
}
همه سمی کالم ها ،پرانتزها و آکلاد ها در انتهای جمله ست تو اینجا افتاده سمت چپ
باتشکر