材料力學編程_第1頁
材料力學編程_第2頁
材料力學編程_第3頁
材料力學編程_第4頁
材料力學編程_第5頁
已閱讀5頁,還剩16頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、材料力學上機作業 第一題一個力作用下的任意截面的彎矩,撓度源程序為:#include<stdio.h>#include<math.h>main()double Fi,ai,bi,l,E,I,x,M,v;printf("請輸入: Fi,ai,bi,E,I,x:n");scanf("%lf,%lf,%lf,%lf,%lf,%lf",&Fi,&ai,&bi,&E,&I,&x);l=ai+bi;if(x>=0) && (x<=ai)M=Fi*bi*x/l;v=-F

2、i*bi*x*(l*l-x*x-bi*bi)/(6*E*I*l);printf("M=%lf,v=%lfn",M,v);if(x>ai) && (x<=l)M=Fi*ai*(l-x)/l;v=-Fi*bi*(l*(x-ai)*(x-ai)*(x-ai)/bi+(l*l-bi*bi)*x-x*x*x)/(6*E*I*l);printf("計算結果為:M=%lf,v=%lfn",M,v); if(x<0) | (x>l)printf("有錯誤!n");Fi=300N,ai=60m,bi=200m,E

3、=200000000000Pa,I=0.0001m4,x=80m,程序運行結果為:v材料力學上機作業 第二題1一個力偶作用下的任意截面的彎矩,撓度#include <stdio.h>#include <math.h>main()double Mk,ak,bk,l,E,I,x,M,v;printf("請輸入 Mk,ak,bk,E,I,x:n");scanf("%lf,%lf,%lf,%lf,%lf,%lf",&Mk,&ak,&bk,&E,&I,&x);l=ak+bk;if(x>=

4、0) && (x<=ak)M=-Mk*x/l;v=Mk*x*(l*l-3*bk*bk-x*x)/(6*E*I*l);printf("M=%lf,v=%lfn",M,v);if(x>ak) && (x<=l)M=Mk*(1-x/l);v=-Mk*(-x*x*x+3*l*(x-ak)*(x-ak)+(l*l-3*bk*bk)*x)/(6*E*I*l);printf("M=%lf,v=%lfn",M,v);if(x<0) | (x>l)printf("錯誤!n");令Mk=200

5、N·m,ak=100m,bk=100m,E=200000000000Pa,I=0.0001m4,x=100m,程序運行結果為:2一段分布力作用下的任意截面的彎矩,撓度源程序為:#include <stdio.h>#include <math.h>main()double q,ai,bi,ci,l,E,I,x,M,v; double Fa,Fb,c1,c2,c3,d3;printf("請輸入: q,ai,bi,ci,E,I,x:n");scanf("%lf,%lf,%lf,%lf,%lf,%lf,%lf",&q,&

6、amp;ai,&bi,&ci,&E,&I,&x);l=ai+bi+ci; Fa=(q*ci*(ci+2*bi)/(2*l);Fb=(q*ci*(ci+2*ai)/(2*l);c3=(Fa*pow(ai+ci),3)/(3*l)-(q*ai*pow(ci,3)/(6*l)-(q*pow(ci,4)/(8*l)+(Fb*pow(bi,2)/2-(Fb*pow(bi,3)/(3*l);c2=c3-(Fb*pow(bi,2)/2-(Fa*pow(ai+ci),2)/2+(q*pow(ci,3)/6;c1=c2;d3=-c3*l;if(x>=0) &

7、& (x<=ai)M=Fa*x;v=(Fa*pow(x,3)/6+c1*x)/(E*I);printf("M=%lf,v=%lfn",M,v);if(x>ai) && (x<=ai+ci)M=(q*ci*x*(ci+2*bi)/(2*l)-(q*pow(x-ai),2)/2);v=(Fa*pow(x,3)/6-(q*pow(x-ai),4)/24+c2*x)/(E*I);printf("M=%lf,v=%lfn",M,v); if(x>ai+ci) && (x<=l) M=Fb*(l-

8、x); v=(Fb*pow(l-x),3)/6+c3*x+d3)/(E*I); printf("M=%lf,v=%lfn",M,v);if(x<0) | (x>l)printf("有錯誤!n");q=200N/m,ai=100m,bi=200,ci=100m,E=200000000000Pa,I=0.0001m4,x=70m,程序運行結果為:材料力學上機作業 第三題n個力共同作用下的任意截面的彎矩,撓度源程序為:#include <stdio.h>#include <math.h>#define EI 4.9e5#de

9、fine N 1000double FunctionV(int i,int n,double l,double x,double a,double b,double F);double FunctionM(int i,int n,double l,double x,double a,double b,double F);main()double l,x;int i,n;double vN,MN,aN,bN,FN;double sumv=0,sumM=0;printf("請輸入 n:");scanf("%d",&n);printf("請輸

10、入 l/m:");scanf("%lf",&l);printf("請輸入 x/m:");scanf("%lf",&x);for(i=0;i<n;i+) printf("請輸入 a%d/m:",i); scanf("%lf",&ai);bi=l-ai;printf("請輸入 F%d/N:",i); scanf("%lf",&Fi);vi=FunctionV(i,n,l,x,a,b,F);Mi=FunctionM

11、(i,n,l,x,a,b,F);sumv=sumv+vi;sumM=sumM+Mi;printf("v(%.2lf)=%.2lf mmn",x,sumv*1000);printf("M(%.2lf)=%.2lf kN.mn",x,sumM/1000);double FunctionV(int i,int n,double l,double x,double a,double b,double F)double v;if(x>=0)&&(x<=ai)v=(-Fi*bi*x*(pow(l,2)-pow(x,2)-pow(bi,2)

12、/(6*EI*l);elsev=(-Fi*bi*(l*pow(x-ai),3)/bi)-(pow(l,2)-pow(bi,2)*x-pow(x,3)/(6*EI*l);return v;double FunctionM(int i,int n,double l,double x,double a,double b,double F)double M;if(x>=0)&&(x<=ai)M=(Fi*bi*x)/l;elseM=(Fi*ai*(l-x)/l;return M;令n=2,l=200m,x=100m,a0=50m,F0=1000N,a1=100m,F1=100

13、0N,程序運行結果為:材料力學上機作業 第四題1、h個力偶共同作用下的任意截面的彎矩,撓度源程序為:#include <stdio.h>#include <math.h>#define EI 4.9e5#define N 1000double FunctionV(int i,int n,double l,double x,double a,double b,double me);double FunctionM(int i,int n,double l,double x,double a,double b,double me);main()double l,x;int

14、i,h;double vN,MN,aN,bN,meN;double sumv=0,sumM=0;printf("請輸入h:");scanf("%d",&h);printf("請輸入l/m:");scanf("%lf",&l);printf("請輸入x/m:");scanf("%lf",&x);for(i=0;i<h;i+) printf("Please input a%d/m:",i); scanf("%lf&quo

15、t;,&ai);bi=l-ai;printf("Please input me%d/N.m:",i); scanf("%lf",&mei);vi=FunctionV(i,h,l,x,a,b,me);Mi=FunctionM(i,h,l,x,a,b,me);sumv=sumv+vi;sumM=sumM+Mi;printf("v(%.2lf)=%.2lf mmn",x,sumv*1000);printf("M(%.2lf)=%.2lf kN.mn",x,sumM/1000);double Functio

16、nV(int i,int h,double l,double x,double a,double b,double me)double v;if(x>=0)&&(x<=ai)v=(mei*x*(pow(l,2)-3*pow(bi,2)-pow(x,2)/(6*EI*l);elsev=(mei*(-pow(x,3)+3*l*pow(x-ai),2)+(pow(l,2)-3*pow(bi,2)*x)/(6*EI*l);return v;double FunctionM(int i,int h,double l,double x,double a,double b,dou

17、ble me)double M;if(x>=0)&&(x<=ai)M=(-mei*x)/l;elseM=(mei*(l-x)/l;return M;令h=2,l=200m,x=100m,a0=50m,me0=150N·m,a1=80m,me1=400N·m,程序運行結果為:2、m段分布力共同作用下的任意截面的彎矩,撓度源程序為:#include <stdio.h>#include <math.h>#define EI 4.9e5#define N 1000double FunctionV(int i,int m,doubl

18、e l,double x,double a,double b,double c,double q,double Fa,double Fb,double c1,double c2,double c3,double d3);double FunctionM(int i,int m,double l,double x,double a,double b,double c,double q,double Fa,double Fb,double c1,double c2,double c3,double d3);main()double l,x;int i,m;double vN,MN,aN,bN,cN

19、,qN;double FaN,FbN,c1N,c2N,c3N,d3N;double sumv=0,sumM=0;printf("Please input m:");scanf("%d",&m);printf("Please input l/m:");scanf("%lf",&l);printf("Please input x/m:");scanf("%lf",&x);for(i=0;i<m;i+) printf("Please inpu

20、t a%d/m:",i); scanf("%lf",&ai); printf("Please input c%d/m:",i); scanf("%lf",&ci); bi=l-ai-ci;printf("Please input q%d/N/m:",i); scanf("%lf",&qi);Fai=(qi*ci*(ci+2*bi)/(2*l); Fbi=(qi*ci*(ci+2*ai)/(2*l); c3i=(Fai*pow(ai+ci),3)/(3*l)-(q

21、i*ai*pow(ci,3)/(6*l)-(qi*pow(ci,4)/(8*l)+(Fbi*pow(bi,2)/2-(Fbi*pow(bi,3)/(3*l); c2i=c3i-(Fbi*pow(bi,2)/2-(Fai*pow(ai+ci),2)/2+(qi*pow(ci,3)/6; c1i=c2i; d3i=-c3i*l;vi=FunctionV(i,m,l,x,a,b,c,q,Fa,Fb,c1,c2,c3,d3);Mi=FunctionM(i,m,l,x,a,b,c,q,Fa,Fb,c1,c2,c3,d3);sumv=sumv+vi;sumM=sumM+Mi;printf("v(

22、%.2lf)=%.2lf mmn",x,sumv*1000);printf("M(%.2lf)=%.2lf kN.mn",x,sumM/1000);double FunctionV(int i,int m,double l,double x,double a,double b,double c,double q,double Fa,double Fb,double c1,double c2,double c3,double d3)double v;if(x>=0)&&(x<=ai)v=(Fai*pow(x,3)/6+c1i*x)/EI;

23、if(x>ai)&&(x<=(ai+ci)v=(Fai*pow(x,3)/6-(qi*pow(x-ai),4)/24+c2i*x)/EI;if(x>(ai+ci)&&(x<=l)v=(Fbi*pow(l-x),3)/6+c3i*x+d3i)/EI;return v;double FunctionM(int i,int m,double l,double x,double a,double b,double c,double q,double Fa,double Fb,double c1,double c2,double c3,double

24、 d3)double M;if(x>=0)&&(x<=ai)M=Fai*x;if(x>ai)&&(x<=(ai+ci)M=(qi*ci*x*(ci+2*bi)/(2*l)-(qi*pow(x-ai),2)/2);if(x>(ai+ci)&&(x<=l)M=Fbi*(l-x);return M;令m=2,l=200m,x=100m,a0=60m,c0=200m,q0=100N/m,a1=40m,c1=20m,q1=200N/m,程序運行結果為:材料力學上機作業 第五題n個力,h個力偶,m段分布力共同作用下的任意截

25、面的彎矩,撓度源程序為:#include <stdio.h>#include <math.h>#define EI 4.9e5#define N 1000double FunctionVi(int i,int n,double l,double x,double ai,double bi,double F);double FunctionMi(int i,int n,double l,double x,double ai,double bi,double F);double FunctionVh(int i,int n,double l,double x,double

26、ah,double bh,double me);double FunctionMh(int i,int n,double l,double x,double ah,double bh,double me);double FunctionVm(int i,int m,double l,double x,double am,double bm,double cm,double q,double Fa,double Fb,double c1,double c2,double c3,double d3);double FunctionMm(int i,int m,double l,double x,d

27、ouble am,double bm,double cm,double q,double Fa,double Fb,double c1,double c2,double c3,double d3);main()double l,x;int i,n,h,m;double viN,MiN,aiN,biN,FN;double vhN,MhN,ahN,bhN,meN;double vmN,MmN,amN,bmN,cmN,qN,FaN,FbN,c1N,c2N,c3N,d3N;double sumvi=0,sumMi=0,sumvh=0,sumMh=0,sumvm=0,sumMm=0;double sum

28、v=0,sumM=0;printf("Please input n:");scanf("%d",&n);printf("Please input h:");scanf("%d",&h);printf("Please input m:");scanf("%d",&m);printf("Please input l/m:");scanf("%lf",&l);printf("Please input

29、x/m:");scanf("%lf",&x);for(i=0;i<n;i+) printf("Please input ai%d/m:",i); scanf("%lf",&aii);bii=l-aii;printf("Please input F%d/N:",i); scanf("%lf",&Fi);vii=FunctionVi(i,n,l,x,ai,bi,F);Mii=FunctionMi(i,n,l,x,ai,bi,F);sumvi=sumvi+vii

30、;sumMi=sumMi+Mii;for(i=0;i<h;i+) printf("Please input ah%d/m:",i); scanf("%lf",&ahi);bhi=l-ahi;printf("Please input me%d/N.m:",i); scanf("%lf",&mei);vhi=FunctionVh(i,h,l,x,ah,bh,me);Mhi=FunctionMh(i,h,l,x,ah,bh,me);sumvh=sumvh+vhi;sumMh=sumM+Mhi;for

31、(i=0;i<m;i+) printf("Please input am%d/m:",i); scanf("%lf",&ami); printf("Please input cm%d/m:",i); scanf("%lf",&cmi); bmi=l-ami-cmi;printf("Please input q%d/N/m:",i); scanf("%lf",&qi);Fai=(qi*cmi*(cmi+2*bmi)/(2*l); Fbi=(qi*c

32、mi*(cmi+2*ami)/(2*l); c3i=(Fai*pow(ami+cmi),3)/(3*l)-(qi*ami*pow(cmi,3)/(6*l)-(qi*pow(cmi,4)/(8*l)+(Fbi*pow(bmi,2)/2-(Fbi*pow(bmi,3)/(3*l); c2i=c3i-(Fbi*pow(bmi,2)/2-(Fai*pow(ami+cmi),2)/2+(qi*pow(cmi,3)/6; c1i=c2i; d3i=-c3i*l;vmi=FunctionVm(i,m,l,x,am,bm,cm,q,Fa,Fb,c1,c2,c3,d3);Mmi=FunctionMm(i,m,l

33、,x,am,bm,cm,q,Fa,Fb,c1,c2,c3,d3);sumvm=sumvm+vmi;sumMm=sumMm+Mmi;sumv=sumvi+sumvh+sumvm;sumM=sumMi+sumMh+sumMm;printf("v(%.2lf)=%.2lf mmn",x,sumv*1000);printf("M(%.2lf)=%.2lf kN.mn",x,sumM/1000);double FunctionVi(int i,int n,double l,double x,double ai,double bi,double F)double v

34、;if(x>=0)&&(x<=aii)v=(-Fi*bii*x*(pow(l,2)-pow(x,2)-pow(bii,2)/(6*EI*l);elsev=(-Fi*bii*(l*pow(x-aii),3)/bii)-(pow(l,2)-pow(bii,2)*x-pow(x,3)/(6*EI*l);return v;double FunctionMi(int i,int n,double l,double x,double ai,double bi,double F)double M;if(x>=0)&&(x<=aii)M=(Fi*bii*

35、x)/l;elseM=(Fi*aii*(l-x)/l;return M;double FunctionVh(int i,int h,double l,double x,double ah,double bh,double me)double v;if(x>=0)&&(x<=ahi)v=(mei*x*(pow(l,2)-3*pow(bhi,2)-pow(x,2)/(6*EI*l);elsev=(mei*(-pow(x,3)+3*l*pow(x-ahi),2)+(pow(l,2)-3*pow(bhi,2)*x)/(6*EI*l);return v;double Func

36、tionMh(int i,int h,double l,double x,double ah,double bh,double me)double M;if(x>=0)&&(x<=ahi)M=(-mei*x)/l;elseM=(mei*(l-x)/l;return M;double FunctionVm(int i,int m,double l,double x,double am,double bm,double cm,double q,double Fa,double Fb,double c1,double c2,double c3,double d3)doub

37、le v;if(x>=0)&&(x<=ami)v=(Fai*pow(x,3)/6+c1i*x)/EI;if(x>ami)&&(x<=(ami+cmi)v=(Fai*pow(x,3)/6-(qi*pow(x-ami),4)/24+c2i*x)/EI;if(x>(ami+cmi)&&(x<=l)v=(Fbi*pow(l-x),3)/6+c3i*x+d3i)/EI;return v;double FunctionMm(int i,int m,double l,double x,double am,double bm,

38、double cm,double q,double Fa,double Fb,double c1,double c2,double c3,double d3)double M;if(x>=0)&&(x<=ami)M=Fai*x;if(x>ami)&&(x<=(ami+cmi)M=(qi*cmi*x*(cmi+2*bmi)/(2*l)-(qi*pow(x-ami),2)/2);if(x>(ami+cmi)&&(x<=l)M=Fbi*(l-x);return M;令n=h=m=1,l=100m,x=50m,ai0=

39、30m,F0=500N,ah0=40m,me0=200N·m,am0=50m,cm=30m,q0=100N/m,程序運行結果為:材料力學上機作業 第六題n個力,h個力偶,m段分布力共同作用下的最大彎矩,最大撓度源程序為:#include <stdio.h>#include <math.h>#define EI 4.9e5#define N 1000double FunctionVi(int i,double j,int n,double l,double ai,double bi,double F);double FunctionMi(int i,double

40、 j,int n,double l,double ai,double bi,double F);double FunctionVh(int i,double j,int h,double l,double ah,double bh,double me);double FunctionMh(int i,double j,int h,double l,double ah,double bh,double me);double FunctionVm(int i,double j,int m,double l,double am,double bm,double cm,double q,double

41、Fa,double Fb,double c1,double c2,double c3,double d3);double FunctionMm(int i,double j,int m,double l,double am,double bm,double cm,double q,double Fa,double Fb,double c1,double c2,double c3,double d3);main()double l;int i,j,n,h,m;double viN,MiN,aiN,biN,FN;double vhN,MhN,ahN,bhN,meN;double vmN,MmN,a

42、mN,bmN,cmN,qN,FaN,FbN,c1N,c2N,c3N,d3N;double sumviN=0,sumMiN=0,sumvhN=0,sumMhN=0,sumvmN=0,sumMmN=0 ;double sumvN=0,sumMN=0;double maxv,maxM,v,M;printf("Please input n:");scanf("%d",&n);printf("Please input h:");scanf("%d",&h);printf("Please input

43、m:");scanf("%d",&m);printf("Please input l/m:");scanf("%lf",&l);for(i=0;i<n;i+) printf("Please input ai%d/m:",i); scanf("%lf",&aii);bii=l-aii;printf("Please input F%d/N:",i); scanf("%lf",&Fi);for(j=0;j<=

44、100;j+) vij=FunctionVi(i,j/(100*l),n,l,ai,bi,F); Mij=FunctionMi(i,j/(100*l),n,l,ai,bi,F); sumvij=sumvij+vij; sumMij=sumMij+Mij;for(i=0;i<h;i+) printf("Please input ah%d/m:",i); scanf("%lf",&ahi);bhi=l-ahi;printf("Please input me%d/N.m:",i); scanf("%lf",

45、&mei);for(j=0;j<=100;j+) vhj=FunctionVh(i,j/(100*l),h,l,ah,bh,me); Mhj=FunctionMh(i,j/(100*l),h,l,ah,bh,me); sumvhj=sumvhj+vhj; sumMhj=sumMhj+Mhj;for(i=0;i<m;i+) printf("Please input am%d/m:",i); scanf("%lf",&ami); printf("Please input cm%d/m:",i); scanf(&

46、quot;%lf",&cmi); bmi=l-ami-cmi;printf("Please input q%d/N/m:",i); scanf("%lf",&qi);for(j=0;j<=100;j+) Fai=(qi*cmi*(cmi+2*bmi)/(2*l); Fbi=(qi*cmi*(cmi+2*ami)/(2*l); c3i=(Fai*pow(ami+cmi),3)/(3*l)-(qi*ami*pow(cmi,3)/(6*l)-(qi*pow(cmi,4)/(8*l)+(Fbi*pow(bmi,2)/2-(Fbi*

47、pow(bmi,3)/(3*l); c2i=c3i-(Fbi*pow(bmi,2)/2-(Fai*pow(ami+cmi),2)/2+(qi*pow(cmi,3)/6; c1i=c2i; d3i=-c3i*l; vmj=FunctionVm(i,j/(100*l),m,l,am,bm,cm,q,Fa,Fb,c1,c2,c3,d3); Mmj=FunctionMm(i,j/(100*l),m,l,am,bm,cm,q,Fa,Fb,c1,c2,c3,d3); sumvmj=sumvmj+vmi; sumMmj=sumMmj+Mmi;for(i=0;i<=100;i+) sumvi=sumvi

48、i+sumvhi+sumvmi; sumMi=sumMii+sumMhi+sumMmi;maxv=fabs(sumvi);v=i/(100*l);maxM=fabs(sumMi);M=i/(100*l);for(i=1;i<=100;i+)if(fabs(sumvi)>fabs(maxv)maxv=sumvi;v=i/(100*l);if(fabs(sumMi)>fabs(maxM)maxM=sumMi;M=i/(100*l);printf("v(max)=v(%.2lf)=%.2lf mmn",v,maxv*1000);printf("M(max)=M(%.2lf)=%.2lf kN.mn",M,maxM/1000);double FunctionVi(int i,double j,int n,double l,double ai,double bi,double F)double v;if(j>=0)&&(j<=aii)v=(-Fi*bii*j*(pow(l,2)-pow(j,2)-pow(j,2)/(6*EI*l);elsev

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論