当前位置:首页 > 材料力学验证编程作业
5) 程序:
#include
#define MAX 100 main() {
double F[MAX],af[MAX],bf[MAX],Mxf[MAX],vxf[MAX]; double M[MAX],am[MAX],bm[MAX],Mxm[MAX],vxm[MAX];
double q[MAX],aq[MAX],bq[MAX],cq[MAX],Mxq[MAX],vxq[MAX],Faq[MAX], Fbq[MAX],C1[MAX],C2[MAX],C3[MAX],D3[MAX],Aq[MAX]; double x,E,I,l,MX,VX,MX1,VX1,MX2,VX2,MX3,VX3; int n,h,m,i,k,j;
MX1=0; VX1=0; MX2=0; VX2=0; MX3=0; VX3=0; MX=0; VX=0;
printf(\ scanf(\ printf(\ scanf(\ printf(\ scanf(\
for (i=1;i<=n;i++)/*输入各个力F的值及其位置*/ {
printf(\ scanf(\ }
for (k=1;k<=h;k++) /*输入各个力偶M的值及其位置*/ {
printf(\ scanf(\ }
for (j=1;j<=m;j++)/*输入各个分布力q的值及其位置*/ {
printf(\ scanf(\ Faq[j]=q[j]*cq[j]*(2*bq[j]+cq[j])/(2*l); Fbq[j]=q[j]*cq[j]*(2*aq[j]+cq[j])/(2*l);
Aq[j]=aq[j]+cq[j];
C2[j]=-Faq[j]*Aq[j]*Aq[j]*(l+2*bq[j])/(6*l)+q[j]*cq[j]*cq[j]*cq[j]* (4*bq[j]+cq[j])/(24*l)-Fbq[j]*bq[j]*bq[j]*bq[j]/(3*l); C3[j]=Faq[j]*Aq[j]*Aq[j]/2-q[j]*cq[j]*cq[j]*cq[j]/6+C2[j]+ Fbq[j]*bq[j]*bq[j]/2; C1[j]=C2[j]; D3[j]=-C3[j]*l; }
if (x>l||x<0) printf(\ else {
for (i=1;i<=n;i++)/*n个力F共同作用下的任意截面的弯矩,挠度*/ {
if (0<=x&&x<=af[i]) {
Mxf[i]=bf[i]*F[i]*x/l;
vxf[i]=-F[i]*bf[i]*x*(l*l-x*x-bf[i]*bf[i])/(6*E*I*l); }
if (af[i] Mxf[i]=af[i]*F[i]*(l-x)/l; vxf[i]=-F[i]*bf[i]*x*(l*(x-af[i])*(x-af[i])*(x-af[i])/bf[i]+ (l*l-bf[i]*bf[i])*x-x*x*x)/(6*E*I*l); } MX1=MX1+Mxf[i]; VX1=VX1+vxf[i]; } for (k=1;k<=h;k++)/*h个力偶M共同作用作用下的任意截面的弯矩,挠度*/ { if (0<=x&&x<=am[k]) { Mxm[k]=-M[k]*x/l; vxm[k]=M[k]*x*(l*l-x*x-bm[k]*bm[k])/(6*E*I*l); } if (am[k] Mxm[k]=M[k]*(l-x)/l; vxm[k]=M[k]*(3*l*(x-am[k])*(x-am[k])+(l*l-3*bm[k]*bm[k])*x- x*x*x)/(6*E*I*l); } MX2=MX2+Mxm[k]; VX2=VX2+vxm[k]; } for (j=1;j<=m;j++)/*m段分布力共同作用下的任意截面的弯矩,挠度*/ { if (0<=x&&x<=aq[j]) { Mxq[j]=Faq[j]*x; vxq[j]=(Faq[j]*x*x*x/6+C1[j]*x)/(E*I); } if (aq[j] Mxq[j]=Faq[j]*x-q[j]*(x-aq[j])*(x-aq[j])/2; vxq[j]=(Faq[j]*x*x*x/6+q[j]*(x-aq[j])*(x-aq[j])*(x-aq[j])* (x-aq[j])+C2[j]*x)/(E*I); } if (aq[j]+cq[j] Mxq[j]=Fbq[j]*(l-x); vxq[j]=(-Fbq[j]*(x-l)*(x-l)*(x-l)/6+C3[j]*x+D3[j])/(E*I); } MX3=MX3+Mxq[j];
共分享92篇相关文档