|
5啊哈币
计算力和角度的,首先,设定一个几何角度(如a1),将其带入分力公式,求出该分力的值(如pa);然后,用计算出的分力,计算出该几何角(aa);接着,用计算出的几何角与设定的几何角进行比较,并重新设定一个几何角,然后重复上述的计算。通过不断的迭代反复计算,使设定的几何角与计算出的几何角之差,达到一个精度值为止。这样可计算出该几何角和分力值。计算机程序框图间附图。编的程序a1,a2,a3,a4,a5初始输入都为0.03,怎么显示的a2,a3,a4,a5还是0.03,不应该是ac,ad,ai,ag的值吗?程序方法正确吗?if循环语句用的对吗?求大侠们赐教!!
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{double a1,pa,pb,m1,aa;
scanf("%lf",&a1);
while(a1>0)
{pa=3427347*sin(0.68007+a1);
pb=3427347*sin(0.68007-a1);
m1=0.00008439*pow(pa,0.5);
aa=asin((3358800*2.18+(pa+pb)*m1)/(pa+pb)*0.01724);
if(abs(a1-aa)<0.001)
break;
else
{a1=a1-(a1-aa)/2;}
}
printf("%lf\n,%lf\n,%lf\n,%lf\n",aa,pa,pb,m1);
double a2,a3,a4,a5,pc,pd,pe,pf,pde,pg,ph,pi,pj,pk,pl,phi,pkj,v3,m2,m3,m4,m5,ac,ad,ag,ai;
scanf("%lf %lf %lf %lf",&a2,&a3,&a4,&a5);
while(a2>0)
{pc=pa*sin(1.117+a3-aa)/sin(0.367+a2+1.117+a3);
pd=pa*sin(0.367+a2+aa)/sin(0.367+a2+1.117+a3);
m2=0.0001099*pow(pc,0.5);
m4=0.0001106*pow(pd,0.5);
ac=asin(pa/pc*sin(aa)+pa/pc*m1*0.01724+pd/pc*sin(a3)+pd/pc*m4*0.01724+m2*0.01724);
if(abs(a2-ac)<0.001)
{pe=pb*sin(0.367-a2-aa)/sin(1.117-a3+0.367-a2);
pf=pb*sin(1.117-a3+aa)/sin(1.117-a3+0.367-a2);
pde=sqrt(pow(pd,2)+pow(pe,2)-2*pd*pe*cos(3.14-2*0.401));
v3=0.401+a3-asin(pe*0.014/pde);
pi=pde*sin(0.785-a4-v3)/0.0274;
pj=pde*sin(0.785+a4+v3)/0.0274;
m5=0.0001436*pow(pi,0.5);
ad=asin(0.009756*(pi+pj)/(pd+pe)*(102.5*sin(a4)+m5)+0.009756*m4);
if(abs(a3-ad)<0.001)
{ai=asin(2*(0.111+m5)/300);
if(abs(a4-ai)<0.001)
{pg=pc*sin(1.065-a4+a2)/sin(0.227+a5+1.065-a4);
ph=pc*sin(0.227+a5-a2)/sin(0.227+a5+1.065-a4);
m3=0.0001422*pow(pg,0.5);
ag=asin(2*(0.111+m3)/300);
if(abs(a5-ag)<0.001)
break;
else
{a5=a5-(a5-ag)/2;}
}
else
{a4=a4-(a4-ai)/2;}
}
else
{a3=a3-(a3-ad)/2;}
}
else
{a2=a2-(a2-ac)/2;}
}
pk=pf*sin(0.227-a5+a2)/sin(1.065+a4+0.227-a5);
pl=pf*sin(1.065+a4+a2)/sin(1.065+a4+0.227-a5);
phi=sqrt(pow(pi,2)+pow(ph,2)-2*pi*ph*cos(3.14-0.785));
pkj=sqrt(pow(pk,2)+pow(pj,2)-2*pk*pj*cos(3.14-0.785));
printf("%lf\n,%lf\n,%lf\n,%lf\n",m2,m3,m4,m5);
printf("%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n,%lf\n",pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,phi,pkj);
printf("%lf\n,%lf\n,%lf\n,%lf\n",a2,a3,a4,a5);
printf("%lf\n,%lf\n,%lf\n,%lf\n",ac,ad,ai,ag);
system("pause");
return 0;}
|
|