哈工大材力上机作业

更新时间:2023-05-31 22:40:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

哈工大材力上机作业

课次

作业一个力作用下的任意截面的弯矩,挠度。

分值

1

Fi ai bi

1

l1.一个力偶作用下的任意截面的弯矩,挠度。2.一段分布力作用下的任意截面的弯矩,挠度。 2

mk2

ak

bk

aj

cj

bj

ln个力共同作用下的任意截面的弯矩,挠度。

l

Fi3

i 1

n

ai

bi

2

l1.h个力偶共同作用作用下的任意截面的弯矩,挠度。

mkh

ak

bk2

k 1

4 2.m段分布力共同作用下的任意截面的弯矩,挠度。

l cj

aj

bj

m

j 1

l5 6 n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。 n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。 2 1

哈工大材力上机作业

第1题、一个力作用下的任意截面的弯矩,挠度。#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,a,F,l,v,Mx,b;

printf("请输入长度l/mm:");scanf("%lf",&l);

printf("请输入a/mm:");scanf("%lf",&a);

printf("请输入F/N:");scanf("%lf",&F);

printf("请输入x/mm:");scanf("%lf",&x);b=l-a;

if(x>=0&&x<=a){

v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);Mx=b*F*x/l;

printf("v=%f*10e-9Mx=%f*10e-3\n",v,Mx);}

elseif(x>a&&x<=l){

v=-F*b*(l*(x-a)*(x-a)*(x-a)/b+(l*l-b*b)*x-x*x*x)/(6*E*I*l);Mx=a*F*(l-x)/l;

printf("v=%f*10e-9Mx=%f*10e-3\n",v,Mx);}else

{

printf("x输入错误\n");}

}

运行结果如图:

第2题、(1)一个力偶作用下的任意截面的弯矩,挠度。

哈工大材力上机作业

VC程序为:#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,a,M,l,v,Mx,b;

printf("请输入长度l/mm:");scanf("%lf",&l);

printf("请输入a/mm:");scanf("%lf",&a);

printf("请输入M/Nm顺时针:");scanf("%lf",&M);

printf("请输入x/mm:");scanf("%lf",&x);b=l-a;

if(x>=0&&x<=a){

v=M*x*(l*l-x*x-3*b*b)/(6*E*I*l);Mx=-M*x/l;

printf("v=%f*10e-6Mx=%f\n",v,Mx);}

elseif(x>a&&x<=l){

v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x)/(6*E*I*l);Mx=M*(l-x)/l;

printf("v=%f*10e-6Mx=%f\n",v,Mx);}else

{

printf("x输入错误\n");}}

运行结果为:

哈工大材力上机作业

(2)一段分布力作用下的任意截面的弯矩、挠度。VC程序为:#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doubleM,v,l,aj,bj,cj,q,x,fa,fb;printf("请输入梁的长度l/mm:");scanf("%lf",&l);

printf("请输入aj/mm:");scanf("%lf",&aj);

printf("请输入bj/mm:");scanf("%lf",&bj);

printf("请输入分布力q/N/m:");scanf("%lf",&q);

printf("请输入x/mm:");scanf("%lf",&x);cj=l-aj-bj;

fa=(bj+cj/2)*cj*q/l;fb=(aj+cj/2)*cj*q/l;if(x>=0&&x<=aj){

M=fa*x/(E*I);

v=fa*x*x*x/(6*E*I);printf("弯矩M=%f*10e-6挠度v=%f*10e-12\n",M,v);}

elseif(x>aj&&x<=(l-bj)){

M=(fa*x-(x-aj)*(x-aj)*q/2)/(E*I);

v=(fa*x*x*x/6-pow((x-aj),4)*q/24)/(E*I);printf("弯矩M=%f*10e-6挠度v=%f*10e-12\n",M,v);}

elseif(x>(l-bj)&&x<=l){

哈工大材力上机作业

M=(fb*(l-x))/(E*I);

v=(fb*l*x*x/2-fb*x*x*x/6-fb*l*l*x/3)/(E*I);printf("弯矩M=%f*10e-6挠度v=%f*10e-12\n",M,v);}else{

printf("溢出!\n");}

}

运行结果如图:

第3题、个力共同作用下的任意截面的弯矩,挠度。

i

n

1

VC程序为:#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,ai,Fi,l,vi,Mix,bi,v,Mx;inti,n;

printf("请输入长度l/mm:");scanf("%lf",&l);printf("请输入n:");scanf("%d",&n);

printf("请输入x/mm:");

哈工大材力上机作业

scanf("%lf",&x);v=0;Mx=0;

for(i=1;i<=n;i++){

printf("请输入a%d/mm:",i);scanf("%lf",&ai);

printf("请输入F%d/N:",i);scanf("%lf",&Fi);bi=l-ai;

if(x>=0&&x<=ai){

vi=-Fi*bi*x*(l*l-x*x-bi*bi)/(6*E*I*l);Mix=bi*Fi*x/l;}

elseif(x>ai&&x<=l){

vi=-Fi*bi*(l*(x-ai)*(x-ai)*(x-ai)/bi+(l*l-bi*bi)*x-x*x*x)/(6*E*I*l);Mix=ai*Fi*(l-x)/l;}else

{

printf("x输入错误\n");}

v=v+vi;

Mx=Mx+Mix;

}

printf("v=%lf*10e-9M=%lf*10e-3\n",v,Mx);}

运行结果如图:

哈工大材力上机作业

第4题、(1)h个力偶共同作用作用下的任意截面的弯矩,挠度。

h

k 1

VC程序为:#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,ak,Mk,l,vk,Mkx,bk,v,Mx;intk,h;

printf("请输入长度l/mm:");scanf("%lf",&l);printf("请输入h:");scanf("%d",&h);

printf("请输入x/mm:");scanf("%lf",&x);v=0;Mx=0;

for(k=1;k<=h;k++){

printf("请输入a%d/mm:",k);scanf("%lf",&ak);

printf("请输入M%d/Nm顺时针:",k);scanf("%lf",&Mk);bk=l-ak;

if(x>=0&&x<=ak){

vk=Mk*x*(l*l-x*x-3*bk*bk)/(6*E*I*l);Mkx=-Mk*x/l;}

elseif(x>ak&&x<=l){

vk=Mk*(-x*x*x+3*l*(x-ak)*(x-ak)+(l*l-3*bk*bk)*x)/(6*E*I*l);Mkx=Mk*(l-x)/l;}else

哈工大材力上机作业

{

printf("x输入错误\n");}

v=v+vk;

Mx=Mx+Mkx;

}

printf("v=%lf*10e-6M=%lf\n",v,Mx);}

运行结果如图:

(2)m段分布力共同作用下的任意截面的弯矩,挠度。

m

j 1

VC

#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,aj,bj,cj,qj,l,vj,Mjx,v,Mx,fja,fjb;intj,m;

printf("请输入长度l/mm:");scanf("%lf",&l);printf("请输入m:");scanf("%d",&m);

printf("请输入x/mm:");scanf("%lf",&x);v=0;Mx=0;

for(j=1;j<=m;j++){

哈工大材力上机作业

printf("请输入a%d/mm:",j);scanf("%lf",&aj);

printf("请输入b%d/mm:",j);scanf("%lf",&bj);

printf("请输入q%d/N/m:",j);scanf("%lf",&qj);cj=l-aj-bj;

fja=(bj+cj/2)*cj*qj/l;fjb=(aj+cj/2)*cj*qj/l;if(x>=0&&x<=aj){

Mjx=fja*x/(E*I);

vj=fja*x*x*x/(6*E*I);}

elseif(x>aj&&x<=(l-bj)){

Mjx=(fja*x-(x-aj)*(x-aj)*qj/2)/(E*I);

vj=(fja*x*x*x/6-pow((x-aj),4)*qj/24)/(E*I);}

elseif(x>(l-bj)&&x<=l){

Mjx=(fjb*(l-x))/(E*I);

vj=(fjb*l*x*x/2-fjb*x*x*x/6-fjb*l*l*x/3)/(E*I);}else{

printf("x输入错误\n");}

v=v+vj;

Mx=Mx+Mjx;

}

printf("v=%lf*10e-12M=%lf*10e-6\n",v,Mx);}

运行结果如图:

哈工大材力上机作业

第5题、n个力,h个力偶,m段分布力共同作用下的任意截面的弯矩,挠度。VC程序为:#include<stdio.h>#include<math.h>#defineE2e11#defineI2.45e-6main(){

doublex,l,v,Mx;

doubleai,Fi,vi,Mix,bi;doubleak,Mk,vk,Mkx,bk;

doubleaj,bj,cj,qj,vj,Mjx,fja,fjb;inti,k,j,n,h,m;

printf("请输入长度l/mm:");scanf("%lf",&l);

printf("请输入x/mm:");scanf("%lf",&x);v=0;Mx=0;

printf("请输入集中力个数n:");scanf("%d",&n);

for(i=1;i<=n;i++){

printf("请输入ai%d/mm:",i);scanf("%lf",&ai);

printf("请输入F%d/N:",i);scanf("%lf",&Fi);bi=l-ai;

if(x>=0&&x<=ai){

哈工大材力上机作业

vi=-Fi*bi*x*(l*l-x*x-bi*bi)/(6*E*I*l);Mix=bi*Fi*x/l;

}

elseif(x>ai&&x<=l){

vi=-Fi*bi*(l*(x-ai)*(x-ai)*(x-ai)/bi+(l*l-bi*bi)*x-x*x*x)/(6*E*I*l);Mix=ai*Fi*(l-x)/l;}else{

printf("x输入错误\n");}

v=v+vi;

Mx=Mx+Mix;

}

printf("请输入力偶的个数h:");scanf("%d",&h);

for(k=1;k<=h;k++){

printf("请输入ak%d/mm:",k);scanf("%lf",&ak);

printf("请输入M%d/Nm顺时针:",k);scanf("%lf",&Mk);bk=l-ak;

if(x>=0&&x<=ak){

vk=1000*Mk*x*(l*l-x*x-3*bk*bk)/(6*E*I*l);Mkx=-1000*Mk*x/l;}

elseif(x>ak&&x<=l){

vk=1000*Mk*(-x*x*x+3*l*(x-ak)*(x-ak)+(l*l-3*bk*bk)*x)/(6*E*I*l);Mkx=1000*Mk*(l-x)/l;}else{

printf("x输入错误\n");}

v=v+vk;

Mx=Mx+Mkx;}

printf("请输入分布力个数m:");scanf("%d",&m);

哈工大材力上机作业

for(j=1;j<=m;j++){

printf("请输入a%d/mm:",j);scanf("%lf",&aj);

printf("请输入b%d/mm:",j);scanf("%lf",&bj);

printf("请输入q%d/N/m:",j);scanf("%lf",&qj);cj=l-aj-bj;

fja=(bj+cj/2)*cj*qj/l;fjb=(aj+cj/2)*cj*qj/l;if(x>=0&&x<=aj){

Mjx=fja*x/(1000*E*I);

vj=fja*x*x*x/(6000*E*I);}

elseif(x>aj&&x<=(l-bj)){

Mjx=(fja*x-(x-aj)*(x-aj)*qj/2)/(1000*E*I);

vj=(fja*x*x*x/6-pow((x-aj),4)*qj/24)/(1000*E*I);}

elseif(x>(l-bj)&&x<=l){

Mjx=(fjb*(l-x))/(1000*E*I);

vj=(fjb*l*x*x/2-fjb*x*x*x/6-fjb*l*l*x/3)/(1000*E*I);}else{

printf("x输入错误\n");}

v=v+vj;

Mx=Mx+Mjx;}

printf("v=%lf*10e-9M=%lf*10e-3\n",v,Mx);}

运行结果如图:

哈工大材力上机作业

第6题、n个力,h个力偶,m段分布力共同作用下的最大弯矩,最大挠度。VC程序:

#include<stdio.h>#include<math.h>#include<stdlib.h>#defineE2e11#defineI2.45e-6#defineN100#defineNN100main(){

inti,j,n1,n2,n3;floata,b,c,l,q,F,Mi;

floatx,m[NN]={0},v[NN]={0},Mmax=0,Vmax=0,F1,F2,c1,c2,c3,d3;doubleM[N][NN]={0},V[N][NN]={0};printf("请输入l/m:");scanf("%f",&l);

printf("请输入力的个数n:");scanf("%d",&n1);for(i=0;i<n1;i++){

printf("请输入a%d/m,F%d/N:",i+1,i+1);scanf("%f,%f",&a,&F);for(j=1;j<=NN;j++)

哈工大材力上机作业

{

x=j*l/NN;b=l-a;

F1=(F*b)/l;F2=(F*a)/l;

if(0<=x&&x<=a){

M[i][j]=F1*x;

V[i][j]=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l);}

elseif(a<x&&x<=l){

M[i][j]=F2*(l-x);

V[i][j]=-F*b*((l/b)*pow(x-a,3)+(l*l-b*b)*x-pow(x,3))/(6*E*I*l);}else{

printf("ERROR!\n");exit(0);}}

}

printf("请输入力偶的个数n:");scanf("%d",&n2);for(i=n1;i<n2+n1;i++){

printf("请输入a%d/m,M%d/Nm:",i+1-n1,i+1-n1);scanf("%f,%f",&a,&Mi);for(j=1;j<=NN;j++){

x=j*l/NN;

b=l-a;F1=-Mi/l;F2=Mi/l;

if(0<=x&&x<=a){

M[i][j]=F1*x;

V[i][j]=Mi*x*(l*l-3*b*b-x*x)/(6*E*I*l);}

elseif(a<x&&x<=l)

哈工大材力上机作业

M[i][j]=F2*(l-x);

V[i][j]=Mi*(-pow(x,3)+3*l*pow(x-a,2)+(l*l-3*b*b)*x)/(6*E*I*l);}else{

printf("ERROR!\n");exit(0);}}

}

printf("请输入分布力的个数n:");scanf("%d",&n);

for(i=n1+n2;i<n1+n2+n3;i++){

printf("请输入a%d/m,c%d/m,q%d/N/m:",i+1-n1-n2,i+1-n1-n2,i+1-n1-n2);scanf("%f,%f,%f",&a,&c,&q);for(j=1;j<=NN;j++){

x=j*l/NN;

b=l-a-c;

F1=(q*c*(c+2*b))/(2*l);F2=(q*c*(c+2*a))/(2*l);

c3=(F1*pow((a+c),3))/(3*l)-(q*a*pow(c,3))/(6*l)-(q*pow(c,4))/(8*l)+(F2*pow(b,2))/2-(F2*pow(b,3))/(3*l);

c2=c3-(F2*pow(b,2))/2-(F1*pow((a+c),2))/2+(q*pow(c,3))/6;c1=c2;d3=-c3*l;

if((x>=0)&&(x<=a)){

V[i][j]=((F1*pow(x,3))/6+c1*x)/(E*I);M[i][j]=F1*x;}

if((x>a)&&(x<=(a+c))){

V[i][j]=((F1*pow(x,3))/6-(q*pow((x-a),4))/24+c2*x)/(E*I);M[i][j]=((q*c*x*(c+2*b))/(2*l))-((q*pow((x-a),2))/2);}

if((x>(a+c))&&(x<=l)){

V[i][j]=((F2*pow((l-x),3))/6+c3*x+d3)/(E*I);M[i][j]=F2*(l-x);

哈工大材力上机作业

}

}

for(j=1;j<=NN;j++){

for(i=0;i<n1+n2+n3;i++){

m[j]=m[j]+(float)M[i][j];v[j]=v[j]+(float)V[i][j];}

if(m[j]>Mmax)

Mmax=m[j];if(v[j]>Vmax)

Vmax=v[j];

}

printf("M=%.2f\tv=%f\n",Mmax,Vmax);}

运行结果如图:

本文来源:https://www.bwwdw.com/article/jjy1.html

Top