密立根油滴实验数据处理C程序由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“密立根油滴实验处理”。
#include “stdio.h” #include “math.h” #define b 0.00822//修正常数 #define p 101300//大气压强 #define q 981//油滴密度 #define g 9.8//重力加速度 #define Pi 3.1415926//圆周率 #define d 0.005//极板距离
#define j 0.0000183//空气粘滞系数 #define l 0.0015//下落距离
#define e 1.602*0.0000000001*0.000000001//单位电荷量10E-19
long double ex[6],sume=0;//用于存储各个油滴的计算电荷量和所有油滴电荷量总和的存储
double Q=0,a=0,U=0,t=0,tp=0,sumt=0,tx[6];//Q--油滴计算带电量、a--中间量……
long double e0=1.602*0.0000000001*0.000000001;int i,N=0,k;int flag=0;char z;void main(){
e0=e;printf(“是否需要计算平均下落时间(y or n)?n”);z=getchar();if(z=='y'){
for(i=1;i
{
sumt=0;
printf(“ ****第%d滴油滴**** n”,i);
for(k=1;k
{
printf(“请输入第%d次下落时间nt=”,k);
scanf(“%lf”,&tp);
sumt=sumt+tp;
}
tx[i]=sumt/4;
printf(“平均下落时间:t=%lfn”,tx[i]);
}
flag=1;} if((z=='n')||flag==1){
for(i=1;i
{
printf(“ ****第%d滴油滴**** n”,i);
printf(“请输入电压平均值U:nU=”);
scanf(“%lf”,&U);
if(flag==0)
{
printf(“请输入下落时间平均值t:nt=”);
scanf(“%lf”,&t);
}
if(flag==1)t=tx[1];
a=sqrt(9*j*l/2/q/g/t);
printf(“中间量a=%En”,a);
Q=18*Pi/sqrt(2*q*g)*d/U;
Q=Q*pow((j*l/t/(1+b/p/a)),1.5);
N=(int)((long double)Q/(long double)e0);
if(((long double)Q/(long double)e0)-N>=0.5)N++;//四舍五入
ex[i]=(long double)Q/N;
sume=sume+ex[i];
printf(“电荷量q=%E 电荷个数N=%d 计算单位电荷量ei=%en”,Q,N,ex[i]);
}
printf(“nnn平均电子电荷e=%en相对误差E=%e”,sume/6,(sume/6-e0)/e0);} }