密立根油滴实验.doc_第1页
密立根油滴实验.doc_第2页
密立根油滴实验.doc_第3页
密立根油滴实验.doc_第4页
密立根油滴实验.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

密立根油滴实验数据处理的程序这个程序是我将c语言用在处理大物实验的数据上,心里很激动,言归正传,这个程序是处理密立根油滴实验数据的c语言程序,这个程序经过我反复的修改与验证,不但能准确计算实验结果,而且赋予了它智能化,能判断误差大的实验数据,还能将数据结果存入c盘下的txt新建文件夹中,方便将字体放大查看,或存入手机中查看!好了,多的我就不说了,大家用了就知道了!我上传的文档分为:1. 我做实验时所测得的数据2. 我写的实验报告的数据处理部分3. 我在电脑上的运行结果4. 程序源代码5. 数据输出文件1.下面是我做实验时所测得的数据:油滴次数第一组第二组第三组第四组第五组V/vt/sV/vt/sV/vt/sV/vt/sV/vt/s 12856.111936.811136.2611013.753307.71 22866.431936.771126.2811113.803317.80 32856.571936.831136.3111113.813307.67 42866.431946.921116.1511013.833307.61 52856.471946.911136.2011013.763317.622.下面是我写的实验报告的数据处理部分:1.各组的时间平均数:2.各组的电压平均数:3.各组的q(所测油滴带的电荷)值:4.各组的n(所测油滴含有的元电荷个数)值:n=q/1.6010-19求得:n1=6 n2=8 n3=16 n4=5 n5=45.各组所求的元电荷e所带的电量:e=q/n;6.所测的元电荷带电量e:e=(e1+e2+e3+e4+e5)/5=1.61 10-197.绝对误差:Ue =e-e标 =(1.61-1.60)10-19=0.011 10-19 (c)8.绝对误差:Ee= Ue/ e标=0.01 10-19/1.6010-19=0.7%9.测量结果:e=(1.610.02) 10-19(c)Ee=0.7%3.下面是我运行的结果:4.下页是程序源代码:下面是程序源代码:#include#includevoid readwriteDat();int lkj(double q)double k; int n1; n1=(int)q;k=q;k=k-n1;if(k0.5)n1=n1;elsen1=n1+1;return n1;double abc()double q,t,v,m,n,h,e,l; double t1,t2,t3,t4,t5;double v1,v2,v3,v4,v5;double t11,tfm,v11,t12,n1,y;FILE *wf;int k,s,po;wf=fopen(c:新建文件夹.txt, w);printf(tttt密立根油滴实验n);printf(温馨提示:所输入时间的单位为:秒,电压单位为:伏n);printf(第一组数据:nn); fprintf(wf,tttt密立根油滴实验n第一组数据:nn); lkh:printf(请输入第一组数的5个时间,5个时间之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&t1,&t2,&t3,&t4,&t5);fprintf(wf,所输入的五个时间值%.2ft%.2ft%.2ft%.2ft%.2fn,t1,t2,t3,t4,t5); if(t116&t216&t316&t416&t516)printf(所测数据的时间不在5t16,将导致误差大,请重新输入n); goto lkh; printf(请输入第一组数的5个电压,5个电压之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&v1,&v2,&v3,&v4,&v5);fprintf(wf,所输入的5个电压值%.0ft%.0ft%.0ft%.0ft%.0fn,v1,v2,v3,v4,v5); if(v1400&v2400&v3400&v4400&v5400)printf(所测数据的电压不在100v=0.06) hgf:printf(所测数据误差太大,已经=6%,输入1,重新输入,输入2,计算下一组数据n); printf(请选择n); scanf(%d,&po); switch(po)case 1:goto lkh;break;case 2:goto lkj;break; default:printf(选择有误,请重新选择:n);goto hgf; else printf(第一组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); printf(第一组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);printf(第一组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);printf(第一组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);printf(第一组计算出来元电荷带电e1=%.2lf*(e-019)(c)nnn,e);printf(注意:(e-019)表示10的负19次方,(e-015)表示10的负15次方,下面遇到(e-019)和(e-015)的同理nn); fprintf(wf,注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方nn); fprintf(wf,第一组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); fprintf(wf,第一组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);fprintf(wf,第一组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);fprintf(wf,第一组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);fprintf(wf,第一组计算出来元电荷带电e1=%.2lf*(e-019)(c)nn,e);fclose(wf); return e; lkj:; double ef()double q,t,v,m,n,h,e,l; double t1,t2,t3,t4,t5;double v1,v2,v3,v4,v5;double t11,tfm,v11,t12,n1,y;FILE *wf;int k,s,po;wf=fopen(c:新建文件夹.txt, a); fprintf(wf,第二组数据:nn); printf(第二组数据:nn); lkh:printf(请输入第二组数的5个时间,5个时间之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&t1,&t2,&t3,&t4,&t5);fprintf(wf,所输入的五个时间值%.2ft%.2ft%.2ft%.2ft%.2fn,t1,t2,t3,t4,t5); if(t1=16&t2=16&t3=16&t4=16&t5=16)printf(所测数据的时间不在5t16,将导致误差大,请重新输入n); goto lkh; printf(请输入第二组数的5个电压,5个电压之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&v1,&v2,&v3,&v4,&v5);fprintf(wf,所输入的5个电压值%.0ft%.0ft%.0ft%.0ft%.0fn,v1,v2,v3,v4,v5); if(v1=400&v2=400&v3=400&v4=400&v5=400)printf(所测数据的电压不在100v=0.06) hgf:printf(所测数据误差太大,已经=6%,输入1,重新输入,输入2,计算下一组数据n); printf(请选择n); scanf(%d,&po); switch(po)case 1:goto lkh;break;case 2:goto lkj;break; default:printf(选择有误,请重新选择:n);goto hgf; else printf(第二组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); printf(第二组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);printf(第二组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);printf(第二组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)个=%dn,q,k);printf(第二组计算出来元电荷带电e2=%.2lf*(e-019)(c)nnn,e); fprintf(wf,注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方nn); fprintf(wf,第二组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); fprintf(wf,第二组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);fprintf(wf,第二组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(v)n,tfm,q);fprintf(wf,第二组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);fprintf(wf,第二组计算出来元电荷带电e2=%.2lf*(e-019)(c)nn,e);fclose(wf); return e; lkj:; double gh()double q,t,v,m,n,h,e,l; double t1,t2,t3,t4,t5;double v1,v2,v3,v4,v5;double t11,tfm,v11,t12,n1,y;FILE *wf;int k,s,po;wf=fopen(c:新建文件夹.txt, a); fprintf(wf,第三组数据:nn); printf(第三组数据:nn); lkh:printf(请输入第三组数的5个时间,5个时间之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&t1,&t2,&t3,&t4,&t5);fprintf(wf,所输入的五个时间值%.2ft%.2ft%.2ft%.2ft%.2fn,t1,t2,t3,t4,t5); if(t1=16&t2=16&t3=16&t4=16&t5=16)printf(所测数据的时间不在5t16,将导致误差大,请重新输入n); goto lkh; printf(请输入第三组数的5个电压,5个电压之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&v1,&v2,&v3,&v4,&v5);fprintf(wf,所输入的5个电压值%.0ft%.0ft%.0ft%.0ft%.0fn,v1,v2,v3,v4,v5); if(v1=400&v2=400&v3=400&v4=400&v5=400)printf(所测数据的电压不在100v=0.06) hgf:printf(所测数据误差太大,已经=6%,输入1,重新输入,输入2,计算下一组数据n); printf(请选择n); scanf(%d,&po); switch(po)case 1:goto lkh;break;case 2:goto lkj;break; default:printf(选择有误,请重新选择:n);goto hgf; else printf(第三组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); printf(第三组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);printf(第三组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);printf(第三组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);printf(第三组计算出来元电荷带电e3=%.2lf*(e-019)(c)n,e); fprintf(wf,注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方nn); fprintf(wf,第三组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); fprintf(wf,第三组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);fprintf(wf,第三组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);fprintf(wf,第三组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);fprintf(wf,第三组计算出来元电荷带电e3=%.2lf*(e-019)(c)nn,e);fclose(wf); return e; lkj:; double lm()double q,t,v,m,n,h,e,l; double t1,t2,t3,t4,t5;double v1,v2,v3,v4,v5;double t11,tfm,v11,t12,n1,y;FILE *wf;int k,s,po;wf=fopen(c:新建文件夹.txt, a);fprintf(wf,第四组数据:nn);printf(第四组数据:nn); lkh:printf(请输入第四组数的5个时间,5个时间之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&t1,&t2,&t3,&t4,&t5);fprintf(wf,所输入的五个时间值%.2ft%.2ft%.2ft%.2ft%.2fn,t1,t2,t3,t4,t5); if(t1=16&t2=16&t3=16&t4=16&t5=16)printf(所测数据的时间不在5t16,将导致误差大,请重新输入n); goto lkh; printf(请输入第四组数的5个电压,5个电压之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&v1,&v2,&v3,&v4,&v5);fprintf(wf,所输入的5个电压值%.0ft%.0ft%.0ft%.0ft%.0fn,v1,v2,v3,v4,v5); if(v1=400&v2=400&v3=400&v4=400&v5=400)printf(所测数据的电压不在100v=0.06) hgf:printf(所测数据误差太大,已经=6%,输入1,重新输入,输入2,计算下一组数据n); printf(请选择n); scanf(%d,&po); switch(po)case 1:goto lkh;break;case 2:goto lkj;break; default:printf(选择有误,请重新选择:n);goto hgf; else printf(第四组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); printf(第四组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);printf(第四组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);printf(第四组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);printf(第四组计算出来元电荷带电e4=%.2lf*(e-019)(c)nnn,e); fprintf(wf,注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方nn); fprintf(wf,第四组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); fprintf(wf,第四组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);fprintf(wf,第四组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);fprintf(wf,第四组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);fprintf(wf,第四组计算出来元电荷带电e4=%.2lf*(e-019)(c)nn,e);fclose(wf); return e; lkj:; double np()double q,t,v,m,n,h,e,l; double t1,t2,t3,t4,t5;double v1,v2,v3,v4,v5;double t11,tfm,v11,t12,n1,y;FILE *wf;int k,s,po;wf=fopen(c:新建文件夹.txt, a);fprintf(wf,第五组数据:nn);printf(第五组数据:nn); lkh:printf(请输入第一组数的5个时间,5个时间之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&t1,&t2,&t3,&t4,&t5);fprintf(wf,所输入的五个时间值%.2ft%.2ft%.2ft%.2ft%.2fn,t1,t2,t3,t4,t5); if(t116&t216&t316&t416&t516)printf(所测数据的时间不在5t16,将导致误差大,请重新输入n); goto lkh; printf(请输入第五组数的5个电压,5个电压之间以空格间隔,输完最后一个请按回车n);scanf(%lf%lf%lf%lf%lf,&v1,&v2,&v3,&v4,&v5);fprintf(wf,所输入的5个电压值%.0ft%.0ft%.0ft%.0ft%.0fn,v1,v2,v3,v4,v5); if(v1=400&v2=400&v3=400&v4=400&v5=400)printf(所测数据的电压不在100v=0.06) hgf:printf(所测数据误差太大,已经=6%,输入1,重新输入,输入2,计算下一组数据n); printf(请选择n); scanf(%d,&po); switch(po)case 1:goto lkh;break;case 2:goto lkj;break; default:printf(选择有误,请重新选择:n);goto hgf; else printf(第五组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); printf(第五组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);printf(第五组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);printf(第五组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);printf(第五组计算出来元电荷带电e5=%.2lf*(e-019)(v)nnn,e); fprintf(wf,注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方nn); fprintf(wf,第五组时间的平均数 t平均=%.2lf/5=%.2lf(s)n,t11,t12); fprintf(wf,第五组电压的平均数 v平均=%.0f/5=%.2f(v)n,v11,h);fprintf(wf,第五组油滴所带电荷q=5.05*(e-015)/%.2lf=%.2lf*(e-019)(c)n,tfm,q);fprintf(wf,第五组油滴中含有元电荷e个数n=%.2lf*(e-19)/1.60*(e-019)=%d个n,q,k);fprintf(wf,第五组计算出来元电荷带电e5=%.2lf*(e-019)(c)nn,e);fclose(wf); return e; printf(%fn,e); lkj:; double kojh(double a)double b,k;int c;b=a;k=a;a=a*100;c=(int)a;b=b-c;if(b0.5)a=k;elsea=k+0.01;return a;main() double e1,e2,e3,e4,e5,e,x,E,re,y;FILE *wf; e1=abc();e2=ef();e3=gh();e4=lm();e5=np();e=(e1+e2+e3+e4+e5)/5;x=e-1.60;E=x/1.6;y=kojh(x);re=E*100;printf(e计算值:%.2Lf*(e-019)(c)n,e);printf(绝对误差U=(%.2lf-1.60)*e(-019)=%.3lf*(e-019)(c)n,e,x); printf(相对误差E=%.2lf*e(-019)/1.6*e(-019)=%.1lf%snnn,x,re,%);printf(nn测量结果:ne=(%3.2f%3.2f)e-019(c)n相对误差e=%4.1f%sn,e,y,re,%);wf=fopen(c:新建文件夹.txt, a);fprintf(wf,e计算值:%.2Lf*(e-019)(c)n,e);fprintf(wf,绝对误差U=(%.2lf-1.60)*e(-019)=%.3lf*(e-019)(c)n,e,x,%); fprintf(wf,相对误差E=%.2lf*e(-019)/1.6*e(-019)=%.1lf%snnn,x,re,%);fprintf(wf,nn测量结果:ne=(%3.2f%3.2f)e-019(c)n相对误差e=%4.1f%sn,e,y,re,%); fprintf(wf,注意:(e-019)表示10的负19次方);fclose(wf);4.下面是数据输出文件(将计算结果存入txt文件中,便于将字体放大阅读或存入手机中阅读,程序默认将数据输出文件存入c盘的新建文件夹中)密立根油滴实验第一组数据:所输入的五个时间值6.116.436.576.436.47所输入的5个电压值285286285286285注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方第一组时间的平均数 t平均=32.01/5=6.40(s)第一组电压的平均数 v平均=1427/5=285.40(v)第一组油滴所带电荷q=5.05*(e-015)/5122.93=9.86*(e-019)(c)第一组油滴中含有元电荷e个数n=9.86*(e-19)/1.60*(e-019)=6个第一组计算出来元电荷带电e1=1.64*(e-019)(c)第二组数据:所输入的五个时间值6.816.776.836.926.91所输入的5个电压值193193193194194注意:(e-019)表示10的负19次方,同理(e-015)表示10的负15次方第二组时间的平均数 t平均=34.24/5=6.85(s)第二组电压的平均数 v平均=967/5=193.40(v)第二组油滴所带电荷q=5.05*(e-015)/3853.60=13.10*(e-019)(v)第二组油滴中含有元电荷e个数n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论