# include void main ()

{

long double *y=NULL,*x=NULL,a=0.0,R=0.0,R1=0.0,xf=0.0,xd=0.0,xw=0.0;

int ii=0,ij=0,num=0,num1=0,a1=1;

printf("估计需要多少塔板:");

scanf ("%d",&num1);

y=(long double *)malloc(sizeof(long double)*num1);

x=(long double *)malloc(sizeof(long double)*num1);

printf("输入相对挥发度α:");

scanf ("%lf",&a);

printf ("输入精馏段回流比R:");

scanf("%lf",&R);

printf ("输入精馏段回流比R1:");

scanf("%lf",&R1);

printf ("输入进料易挥发组分摩尔分数xf:");

scanf("%lf",&xf);

printf ("输入塔顶易挥发组分摩尔分数xd:");

scanf("%lf",&xd);

printf ("输入塔釜易挥发组分摩尔分数xw:");

scanf("%lf",&xw);

printf ("开始计算理论踏板\n");

*y=xd;

for (ii=0;ii<=num1;ii++)

{

*(x+ii)=*(y+ii)/(a-(a-1)*(*(y+ii)));

printf("根据相平衡关系式x%d=%lf\n",ii+1,*(x+ii));

if (*(x+ii)<=xw)

{

printf("理论踏板%d\n",num);

break;

}

if (*(x+ii)>=xf)

{

*(y+ii+1)=R/(R+1)*(*(x+ii))+xd/(R+1);

printf ("根据精馏段操作线方程y%d=%lf\n",ii+2,*(y+ii+1));

num++;

printf("第%d块板\n",num);

}

else

{

while(a1)

{

printf("\n第%d块板是最佳进料板\n\n",ii+1);

a1=0;

}

*(y+ii+1)=(R1+1)/R1*(*(x+ii))+xw/R1;

printf ("根据提馏段操作线方程y%d=%lf\n",ii+2,*(y+ii+1));

num++;

printf("第%d块板\n",num);

}

}

}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐