大学物理实验迈克尔逊干涉仪
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
迈克尔逊干涉测波长的c语言程序我这个程序是处理迈克尔逊干涉测波长数据处理的c语言程序这个程序是我昨天开始编的,今天终于完成了,这个程序我反复验证与修改,其准确性和判断能力有了大的提高!多的我就不说了,大家用了就知道了!
下面是程序代码:
#include
#include
double max(double f)
{
double k,l,g;
k=f;
l=(int)f;
l=k-l;
l=l*10;
g=l;
l=(int)l;
g=g-l;
g=g/10;
if(g>=0.05)
f=f;
else
f=f+0.1;
return f;
}
main()
{
float d0,d1,d2,d3,d4,d5;
float d10,d11,d12,d13,d14,d15;
double m,h,j,e,f,x,n,cd,ab,ef,gh,q;
printf("\t\t\t迈克尔逊干涉测波长的C语言程序\n");
printf("温馨提示:所输数据单位必须为:mm\n");
printf("请依次输入冒出的d0,d1,d2,d3,d4,d5五个数以空格间隔,即输完第一个数,按空格再输第二个数,输完d5请按回车\n");
qw:scanf("%f%f%f%f%f%f",&d0,&d1,&d2,&d3,&d4,&d5) ;
if(d0>0&&d1>0&&d2>0&&d3>0&&d4>0&&d5>0)
{
ab=d0+d1+d2;
cd=d3+d4+d5;
m=cd-ab;
m=m/9;
if(m<0)
printf("冒出与缩进输反了,系统已经进行智能化处理,下面输缩进,也要输成冒出的数据\n");
m=fabs(m);
printf("请依次输入缩进的d10,d11,d12,d13,d14,d15五个数以空格间隔,即输完第一个数,按空格再输第二个数,输完d5请按回车\n");
er:scanf("%f%f%f%f%f%f",&d10,&d11,&d12,&d13,&d14 ,&d15);
if(d10>0&&d11>0&&d12>0&&d13>0&&d14>0&&d15>0) {
gh=d10+d11+d12;
ef=d15+d14+d13;
n=gh-ef;
n=n/9;
if(n<0)
printf("冒出与缩进输反了,系统已经进行智
能化处理,不会影响测量结果\n");
n=fabs(n);
h=(m+n)/2;
j=2*h/50;
j=j*10000;
e=j-6.328;
q=e*100;
f=fabs(e);
f=f/6.328;
f=f*100;
if(j>6.0116&&j<6.6444)
{
printf("Δd1=%fmm\nΔd2=%fmm\nΔd=%fmm\n",m ,n,h);
printf("波长λ=%4.1fe+002nm\n相对误差:e=%4.1f%s\n绝对误差k=%4.1fnm\n",j,f,"%",q);
printf("\n\n测量结果:\n波长λ=(%3.1f ±%3.1f)e+002nm\n\n相对误差e=%4.1f%s\n",j,e,f,"%");
printf("\n注释:e+002表示10的平方");
}
else
printf("所测数据误差太大\n");
}
else
printf("输入有误,请重新输入\n");
goto er;
}
else
printf("输入有误,请重新输入\n");
goto qw;
}
这是我们实验时的数据:单位:mm
下页是我的操作结果: