杨氏模量c语言程序,【物理实验】杨氏模量,C语言代码处理数据,连夜赶工,需要......

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

还是那句话,省时90%,手工计算需要1个小时,程序仅需5分钟~~~建议上物理实验的同学收藏~

因为连夜赶工编写,各种调试,也许会存在问题,但本人已经自行测试~~答案比较靠谱~~

楼主用vc 6.0 运行代码

使用本代码为自愿,对于出现的后果本人不承担~

#include

#include

#include

#define m 0.2

#define g 9.79

#define n 6

#define t 1.11

#define k 8

#define tk 1.08

#define dtl 0.004

#define dtb 0.050

#define dtj 0.05

int main()

{ int re();

float fun();

char c;

system("color 1f");

printf("\n\n**********本程序根据新版教材编写,新版和旧版是否适用请自行对比************\n\n");

printf("是否已注意到上面的提示,并确认你使用新版教材写实验?\n\n是请按Y并回车 , 否请按N\n");

scanf("%c",&c);

system("cls");

if(c=='y'||c=='Y') fun();

if (c=='n'||c=='N') {printf("很抱歉!旧版教材没有经过验证,建议您不要使用本程序\n");exit(0);}

printf("\n\n\n\n\%30d\b*******Designed by 宫豹鸡丁*******\n");

return 0;

}

float fun()

{

float zl[8],jl[8],al[8],l,lc,sl,slc,usl,e,eaz,ea,ue,uez,d[6],ad,dc,dz=0.0,ud,sum=0.0,t1=0.0,t2,temp;

int i;

printf("\n注意:根据教材的公式,本程序的增荷和减荷均为加减砝码后的长度而不是增加或减少的量,否则计算出的平均伸长量为负值,出错\n\n");

printf("按序号依次输入8个增荷(以空格隔开):\n");

for (i=0;i<8;i++) scanf("%f",&zl[i]);

printf("按序号依次输入8个减荷(以空格隔开):\n");

for (i=0;i<8;i++) scanf("%f",&jl[i]);

for(i=0;i<8;i++) al[i]=(zl[i]+jl[i])/2.0;

printf("输入卷尺的测量值:\n");

scanf("%f",&lc);

l=lc+dtj;

printf("输入6个直径的测量值:\n");

for(i=0;i<6;i++) {scanf("%f",&d[i]);sum=sum+d[i];}

ad=sum/6.0;

for(i=0;i<6;i++) dz=dz+(d[i]-ad)*(d[i]-ad);

temp=t*sqrt((1/(n*(n-1)))*dz);

ud=sqrt(temp*temp+((1/3.0)*dtl)*((1/3.0)*dtl));

dc=ad+ud;

sl=0.25*(0.25*(al[4]-al[0])+0.25*(al[5]-al[1])+0.25*(al[6]-al[2])+0.25*(al[7]-al[3]));

for(i=0;i<4;i++) t1=t1+(0.25*(al[4]-al[i])-sl)*(0.25*(al[4]-al[i])-sl);

t2=tk*sqrt((1/(k*(k-1)))*t1);

usl=sqrt(t2*t2+((1/3.0)*dtb)*((1/3.0)*dtb));

slc=sl+usl;

ue=sqrt((dtj/l)*(dtj/l)+(2.0*ud/ad)*(2.0*ud/ad)+(usl/sl)*(usl/sl));

printf("卷尺L的测量结果:%0.2f\n\n直径的平均值:%0.3f\n\n直径的不确定度:%0.4f\n\n伸长量的平均值:%0.3f\n\n",lc+dtj,ad,ud,sl);

printf("伸长量的不确定度:%0.4f \n\n伸长量的测量结果:%0.3f\n\n",usl,slc);

l=l*0.01;

ad=ad*0.001;

sl=sl*0.001;

ea=(4.0*m*g*l)/(3.14159*ad*ad*sl);

uez=ea*ue;

e=ea+uez;

printf("E一杠的值为:%f (不用怀疑,杨氏模量的数级是10的10次方或者11次方)\n",ea);

printf("E的不确定度:%0.4f\n\nE的总不确定度:%0.4f\n\n",ue,uez);

printf("最终测量结果:\nE的值为:%f\n\n不确定度Ur:%0.4f\n\n",ea+uez,ue);

return 0;}

0086dd3361d4c2995aa0828f32aa72fe.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值