双棱镜干涉资料.docx

上传人:b****4 文档编号:4884450 上传时间:2023-05-07 格式:DOCX 页数:13 大小:903.99KB
下载 相关 举报
双棱镜干涉资料.docx_第1页
第1页 / 共13页
双棱镜干涉资料.docx_第2页
第2页 / 共13页
双棱镜干涉资料.docx_第3页
第3页 / 共13页
双棱镜干涉资料.docx_第4页
第4页 / 共13页
双棱镜干涉资料.docx_第5页
第5页 / 共13页
双棱镜干涉资料.docx_第6页
第6页 / 共13页
双棱镜干涉资料.docx_第7页
第7页 / 共13页
双棱镜干涉资料.docx_第8页
第8页 / 共13页
双棱镜干涉资料.docx_第9页
第9页 / 共13页
双棱镜干涉资料.docx_第10页
第10页 / 共13页
双棱镜干涉资料.docx_第11页
第11页 / 共13页
双棱镜干涉资料.docx_第12页
第12页 / 共13页
双棱镜干涉资料.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

双棱镜干涉资料.docx

《双棱镜干涉资料.docx》由会员分享,可在线阅读,更多相关《双棱镜干涉资料.docx(13页珍藏版)》请在冰点文库上搜索。

双棱镜干涉资料.docx

双棱镜干涉资料

双棱镜干涉实验数据处理的C语言程序

这个程序是我将c语言用在处理大物实验的数据上,心里很激动,言归正传,这个程序是处理双棱镜干涉实验数据的c语言程序,这个程序经过我反复的修改与验证,不但能准确计算实验结果,而且赋予了它智能化,能判断误差大的实验数据,还能将数据结果存入c盘下的txt新建文件夹中,方便将字体放大查看,或存入手机中查看!

好了,多的我就不说了,大家用了就知道了!

我上传的文档分为5个部分:

1.我做实验时所测得的数据

2.我写的实验报告的数据处理部分

3.我在电脑上的运行结果

4.程序源代码

5.数据输出文件

1.下面是我做实验时所测得的数据:

单位:

mm

x1

x2

x3

x4

x5

x6

x7

x8

x9

x10

0.259

1.216

2.170

3.170

4.216

5.173

6.152

7.019

8.023

9.018

A1

d11

d12

A2

d21

d22

525.3

6.287

3.601

1169.2

6.831

7.047

2.下面是我写的实验报告的数据处理部分:

(1)两次成像透镜移动的距离A

(2)两虚像间的距离d的计算:

(3)光源到屏的距离D的计算:

(4)相邻暗或亮条纹间的距离Δx的计算:

(5)波长λ的计算:

(6)测量结果:

波长λ=643.2nm

相对误差:

e=1.6%

绝对误差k=10.6nm

测量结果:

波长λ=(6.4±0.2)e+002nm

相对误差e=1.6%

注释:

e+002表示10的平方

3.下页是我运行的结果:

4.下面是程序源代码:

#include

#include

doublemax(doublef)

{

doublek,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;

returnf;

}

voidmain()

{

floatx1,x2,x3,x4,x5,x6,x7,x8,x9,x10;

floatA1,d11,d12,A2,d21,d22,A,d1,d2;

doubleq,m,n,d,D,x,y,f,e,k,l,h,cd,ab,ef;

FILE*wf;

wf=fopen("c:

\\新建文件夹.txt","w");

printf("\t\t\t\t双棱镜干涉测波长\n");

printf("温馨提示:

所测数据的单位必须全化为mm\n");

printf("变量解释:

\nA1,A2表示透镜在光具座上的相应两个位置\n");

printf("d11,d12表示测微目镜测量虚光源放大像的位置\n");

printf("d21,d22表示缩小像的两个位置\n");

fprintf(wf,"温馨提示:

所测数据的单位必须全化为mm\n");

fprintf(wf,"变量解释:

\nA1,A2表示透镜在光具座上的相应两个位置\n");

fprintf(wf,"d11,d12表示测微目镜测量虚光源放大像的位置\n");

fprintf(wf,"d21,d22表示缩小像的两个位置\n");

printf("x1,x2,x3,x4,x5,x6,x7,x8,x9,x10表示测微目镜干涉条纹所在位置对应的读数\n");

printf("\n请依次输入x1,x2,x3,x4,x5,x6,x7,x8,x9,x10的值,十个数之间以空格间隔,即输完第一个,按空格再输第二个,输完x10请按回车:

\n");

hjk:

scanf("%f%f%f%f%f%f%f%f%f%f",&x1,&x2,&x3,&x4,&x5,&x6,&x7,&x8,&x9,&x10);

fprintf(wf,"所输入的x1,x2,x3,x4,x5,x6,x7,x8,x9,x10分别是%.3f\t%.3\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\n",x1,x2,x3,x4,x5,x6,x7,x8,x9,x10);

printf("请依次输入A1,d11,d12,三个数之间以空格间隔,输完d12请按回车\n");

scanf("%f%f%f",&A1,&d11,&d12);

fprintf(wf,"所输入的A1,d11,d12依次是:

%.1f\t%.3f\t%.3f\n",A1,d11,d12);

printf("请依次输入A2,d21,d22,三个数之间以空格间隔输完d22请按回车\n");

scanf("%f%f%f",&A2,&d21,&d22);

fprintf(wf,"所输入的A2,d21,d22依次是:

%.1f\t%.3f\t%.3f\n",A2,d21,d22);

if(x1>0.0&&x2>0.0&&x3>0.0&&x4>0.0&&x5>0.0&&x6>0.0&&x7>0.0&&x8>0.0&&x9>0.0&&x10>0.0&&A1>0.0

&&d11>0.0&&d12>0.0&&A2>0.0&&d21>0.0&&d22>0.0)

{

A=A1-A2;

A=fabs(A);

d1=d11-d12;

d1=fabs(d1);

m=sqrt(d1);

d2=d21-d22;

d2=fabs(d2);

n=sqrt(d2);

d=d1*d2;

d=sqrt(d);

D=A*(m+n)/(m-n);

x=(x6+x7+x8+x9+x10-x1-x2-x3-x4-x5);

x=x/25;

y=d*x/D;

y=y*1000000;

ef=y/100;

e=y-632.8;

e=fabs(e);

e=e/632.8;

k=y*e;

e=e*100;

f=y*e/100;

ab=f/100;

cd=max(ab);

if(y>601.16&&y<664.44)/*此处为He-Ne激光器所测结果,如果光源不同,此处可进行适量修改*/

{printf("\n两次成像透镜移动的距离A=%.1fmm\n",A);

printf("放大像两条线的间距d1=%.3fmm\n",d1);

printf("缩小像两条线的间距d2=%.3fmm\n",d2);

printf("两虚像间的距离d=%.3fmm\n",d);

printf("根号d1=%.3f\n",m);

printf("根号d2=%.3f\n",n);

printf("光源到屏的距离D=%.3fmm\n",D);

printf("相邻暗或亮条纹间距Δx=%.3fmm\n",x);

printf("\n波长λ=%4.1fnm\n相对误差:

e=%4.1f%s\n绝对误差k=%4.1fnm",y,e,"%",k);

printf("\n\n测量结果:

\n波长λ=(%3.1f±%3.1f)e+002nm\n相对误差e=%4.1f%s\n",ef,cd,e,"%");

printf("注释:

e+002表示10的平方\n");

fprintf(wf,"\n两次成像透镜移动的距离A=%.1fmm\n",A);

fprintf(wf,"放大像两条线的间距d1=%.3fmm\n",d1);

fprintf(wf,"缩小像两条线的间距d2=%.3fmm\n",d2);

fprintf(wf,"两虚像间的距离d=%.3fmm\n",d);

fprintf(wf,"根号d1=%.3f\n",m);

fprintf(wf,"根号d2=%.3f\n",n);

fprintf(wf,"光源到屏的距离D=%.3fmm\n",D);

fprintf(wf,"相邻暗或亮条纹间距Δx=%.3fmm\n",x);

fprintf(wf,"\n波长λ=%4.1fnm\n相对误差:

e=%4.1f%s\n绝对误差k=%4.1fnm",y,e,"%",k);

fprintf(wf,"\n\n测量结果:

\n波长λ=(%3.1f±%3.1f)e+002nm\n相对误差e=%4.1f%s\n",ef,cd,e,"%");

fprintf(wf,"注释:

e+002表示10的平方\n");

fclose(wf);

}

else

printf("所测数据误差太大\n");

}

else

printf("输入有误,请重新输入\n");

gotohjk;

}

5.下面是数据输出文件(将计算结果存入txt文件中,便于将字体放大阅读或存入手机中阅读,程序默认将数据输出文件存入c盘的新建文件夹中)

温馨提示:

所测数据的单位必须全化为mm

变量解释:

A1,A2表示透镜在光具座上的相应两个位置

d11,d12表示测微目镜测量虚光源放大像的位置

d21,d22表示缩小像的两个位置

所输入的x1,x2,x3,x4,x5,x6,x7,x8,x9,x10分别是0.2591.2162.1703.1704.2165.1736.1527.0198.023

所输入的A1,d11,d12依次是:

525.36.2873.601

所输入的A2,d21,d22依次是:

1169.26.8317.047

两次成像透镜移动的距离A=643.9mm

放大像两条线的间距d1=2.686mm

缩小像两条线的间距d2=0.216mm

两虚像间的距离d=0.762mm

根号d1=1.639

根号d2=0.465

光源到屏的距离D=1153.646mm

相邻暗或亮条纹间距Δx=0.974mm

波长λ=643.2nm

相对误差:

e=1.6%

绝对误差k=10.6nm

测量结果:

波长λ=(6.4±0.2)e+002nm

相对误差e=1.6%

注释:

e+002表示10的平方

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2