暖通计算机编程.docx

上传人:b****7 文档编号:8956380 上传时间:2023-02-02 格式:DOCX 页数:22 大小:25.74KB
下载 相关 举报
暖通计算机编程.docx_第1页
第1页 / 共22页
暖通计算机编程.docx_第2页
第2页 / 共22页
暖通计算机编程.docx_第3页
第3页 / 共22页
暖通计算机编程.docx_第4页
第4页 / 共22页
暖通计算机编程.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

暖通计算机编程.docx

《暖通计算机编程.docx》由会员分享,可在线阅读,更多相关《暖通计算机编程.docx(22页珍藏版)》请在冰豆网上搜索。

暖通计算机编程.docx

暖通计算机编程

1.常用算法编程

(1)用迭代法求方程

的根,计算精度

(迭代公式为:

)。

程序步骤如下:

#include"stdio.h"

#include"conio.h"

#include"math.h"

main()

{

intn;

floatx0,x;

x0=0.0;

x=0.0;

for(n=1;;n++)

{x=1.0/(x0*x0+1.0);

if(fabs(x-x0)<0.000001)

{printf("n=%d,x=%f",n,x);break;}

else

x0=x;

}

getch();

}

(2)用二分法求

,搜索区间为[2,3],计算精度要求

程序步骤如下:

#include"stdio.h"

#include"conio.h"

#include"math.h"

main()

{

doublea,b,a1,b1,y0,x0,c;

a=2.0;

b=3.0;

a1=a*a*a-2.0*a-5.0;

b1=b*b*b-2.0*b-5.0;

if(a1*b1>0.0)printf("nokeytotheproblem?

\n");

for(;;)

{x0=(a+b)/2.0;

y0=x0*x0*x0-2.0*x0-5.0;

if(y0*a1>0.0)

a=x0,a1=y0;

else

b=x0,b1=y0;

c=b-a;

if(c<0.0000001)

{printf("x=%.10f\n",x0);

break;

}

}

printf("a=%f,b=%f",a,b);

getch();

}

(3)也只列表函数如表1.2表示,用分段抛物线插值求在

时的y值。

表1.2列表函数

X

0.20

0.24

0.28

0.32

0.36

0.40

Y

0.19867

0.23770

0.27636

0.31457

0.35227

0.38947

编程步骤如下:

#include

main()

{

inti;

floatx,y,a[6],b[6],x1,x2,x3,y1,y2,y3,c,c1,c2,d,d1,d2,f,f1,f2;

a[0]=0.20,b[0]=0.19867;

a[1]=0.24,b[1]=0.23770;

a[2]=0.28,b[2]=0.27636;

a[3]=0.32,b[3]=0.31457;

a[4]=0.36,b[4]=0.35227;

a[5]=0.40,b[5]=0.38947;

x1=a[0],x2=a[1],x3=a[2];

y1=b[0],y2=b[1],y3=b[2];

printf("enterax:

\n");

scanf("%f",&x);

for(i=2;i<5;i++)

{

if(x>=a[i])

x1=a[i-1],x2=a[i],x3=a[i+1],y1=b[i-1],y2=b[i],y3=b[i+1];

else

if(x>=a[5])

x1=a[3],x2=a[4],x3=a[5],y1=b[3],y2=b[4],y3=b[5];

}

c1=(x-x2)*(x-x3);

c2=(x1-x2)*(x1-x3);

c=(c1/c2)*y1;

d1=(x-x1)*(x-x3);

d2=(x2-x1)*(x2-x3);

d=(d1/d2)*y2;

f1=(x-x1)*(x-x2);

f2=(x3-x1)*(x3-x2);

f=(f1/f2)*y3;

y=c+d+f;

printf("c=%f,d=%f,f=%f\n",c,d,f);

printf("x=%f,y=%f",x,y);

getch();

}

2、完成下列空气状态参数换算的编程

(1)由空气温度求相应的饱和水蒸气分压力;

#include

#include

main()

{

floatT,t,z,a1,a2,a3,a4,a5,a6,p1,p2,z1,p3,z2,p4,s,p,ps,y;

printf("inputt=");

scanf("%f",&t);

printf("\n");

T=t+273.16;

z=273.16/T;

a1=-10.79574;

a2=5.02808;

a3=-1.50475e-4;

a4=8.2969;

a5=0.42875e-3;

a6=-4.76955;

p1=a1*(z-1);

y=log10(z);

p2=a2*y;

z1=a4*(1-(1/z));

p3=a3*(pow(10,z1)-1);

z2=a6*(z-1);

p4=a5*(pow(10,z2)-1)-2.2195768;

s=p1+p2+p3+p4;

p=760;

ps=p*pow(10,s);

printf("ps=%.10f\n",ps);

getch();

}

(2)由水蒸气分压力求空气露点温度;

#include

#include

main()

{

floatpv,td,y;

scanf("%f",&pv);

y=log(pv);

if(pv>4.581)

td=-18.807+11.005*y+0.8888*y*y;

else

td=-19.237+11.533*y+0.72733*y*y;

printf("%.10f\n",td);

getch();

}

(3)由温度和相对湿度求含湿量及其余参数

#include

#include

main()

{

floatT,t,z,a1,a2,a3,a4,a5,a6,p1,p2,z1,p3,z2,p4,s,p,ps,y,j,pv,d;

printf("inputt=");

scanf("%f",&t);

printf("\n");

T=t+273.16;

z=273.16/T;

a1=-10.79574;

a2=5.02808;

a3=-1.50475e-4;

a4=8.2969;

a5=0.42875e-3;

a6=-4.76955;

p1=a1*(z-1);

y=log10(z);

p2=a2*y;

z1=a4*(1-(1/z));

p3=a3*(pow(10,z1)-1);

z2=a6*(z-1);

p4=a5*(pow(10,z2)-1)-2.2195768;

s=p1+p2+p3+p4;

printf("inputp=");

scanf("%f",&p);

printf("\n");

ps=p*pow(10,s);

printf("ps=%.10f\n",ps);

printf("inputj=");

scanf("%f",&j);

printf("\n");

pv=j*ps/100;

printf("pv=%f\n",pv);

d=622*pv/(p-pv);

printf("d=%f",d);

getch();

}

(4)由空气焓值求湿球温度;

#include

#include

main()

{

intn;

floati,tw,tw1,tw2,p,pv1,pv2,y,y1,y2,d1,d2,i1,i2,g;

floatpvsf(floatx,floaty);

printf("inputi=");

scanf("%f",&i);

printf("\n");

printf("inputp=");

scanf("%f",&p);

printf("\n");

y=log(i);

if(i>6.443)

{tw=6.0163-(11.061*y)+(8.117*y*y)-(0.70713*y*y*y);

printf("%f\n",tw);}

else

if(i<=0)

{

tw1=-5;

for(n=1;n<20;n++)

{pv1=pvsf(tw1,p);

d1=622*pv1/(p-pv1);

i1=0.24*tw1+0.001*d1*(597.3+0.441*tw1);

y1=i-i1;

tw2=tw1-0.5;

pv2=pvsf(tw2,p);

d2=622*pv2/(p-pv2);

i2=0.24*tw2+0.001*d2*(597.3+0.441*tw2);

y2=i-i2;

if(y1*y2<0)

{g=fabs(y1/y2);tw=(tw2*g+tw1)/(1+g);printf("%f",tw);break;}

else

{if(y1*y2==0)

{if(y1==0){tw=tw1;printf("%f",tw);break;}

else{tw=tw2;printf("%f",tw);break;}

}

else{tw1=tw2;y1=y2;}

}

}

}

else

{tw=-3.171+2.5641*y+1.2776*y*y+0.45779*y*y*y;

printf("%f\n",tw);}

getch();

}

floatpvsf(floatx,floaty)

{floatT,z,a1,a2,a3,a4,a5,a6,p1,p2,z1,p3,z2,p4,s,ps;

T=x+273.16;

z=273.16/T;

a1=-10.79574;

a2=5.02808;

a3=-1.50475e-4;

a4=8.2969;

a5=0.42875e-3;

a6=-4.76955;

p1=a1*(z-1);

p2=a2*log10(z);

z1=a4*(1-(1/z));

p3=a3*(pow(10,z1)-1);

z2=a6*(z-1);

p4=a5*(pow(10,z2)-1)-2.2195768;

s=p1+p2+p3+p4;

ps=y*pow(10,s);

return(ps);

}

(5)由干球温度和湿球温度求其余参数;

#include

#include

main()

{

intn;

floatt,tw,p,ps,ds,pv,td,y,i,v,h1,c1,d;

floatpvsf(floatx,floaty),dpf(floatz);

printf("inputt=");

scanf("%f",&t);

printf("\n");

printf("inputtw=");

scanf("%f",&tw);

printf("\n");

printf("inputp=");

scanf("%f",&p);

printf("\n");

ps=pvsf(tw,p);

if(t-tw<=0){td=tw;

pv=ps;

d=622*pv/(p-pv);

v=2.1552*(273.16+t)*(1+0.0016078*d)/p;

i=0.24*t+(597.3+0.441*t)*d*0.001;

y=pv/pvsf(t,p);

printf("td=%f\n",td);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

else

{

ds=622*ps/(p-ps);

if(tw<=0){td=tw;

pv=ps;

d=ds;

v=2.1552*(273.16+t)*(1+0.0016078*d)/p;

i=0.24*t+(597.3+0.441*t)*d*0.001;

y=pv/pvsf(t,p);

printf("td=%f\n",td);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

else

{

h1=597.3+0.441*t-tw;

c1=0.001*(597.3-0.559*tw)*ds-0.24*(t-tw);

d=c1/0.001/h1;

pv=d*p/(622+d);

d=622*pv/(p-pv);

v=2.1552*(273.16+t)*(1+0.0016078*d)/p;

i=0.24*t+(597.3+0.441*t)*d*0.001;

td=dpf(pv);

y=pv/pvsf(t,p);

printf("td=%f\n",td);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

}

getch();

}

floatpvsf(floatx,floaty)

{floatT=0.0,z=0.0,a1=0.0,a2=0.0,a3=0.0,a4=0.0,a5=0.0,a6=0.0,p1=0.0,p2=0.0,z1=0.0,p3=0.0,z2=0.0,p4=0.0,s=0.0,ps=0.0;

T=x+273.16;

z=273.16/T;

a1=-10.79574;

a2=5.02808;

a3=-1.50475e-4;

a4=8.2969;

a5=0.42875e-3;

a6=-4.76955;

p1=a1*(z-1);

p2=a2*log10(z);

z1=a4*(1-(1/z));

p3=a3*(pow(10,z1)-1);

z2=a6*(z-1);

p4=a5*(pow(10,z2)-1)-2.2195768;

s=p1+p2+p3+p4;

ps=y*pow(10,s);

return(ps);

}

floatdpf(floatz)

{

floattd=0.0,y=0.0;

y=log(z);

if(z>4.581)

td=-18.807+11.005*y+0.8888*y*y;

else

td=-19.237+11.533*y+0.72733*y*y;

return(td);

}

(6)由干球温度和露点温度求其余参数。

#include

#include

main()

{

intn;

floatt,td,p,pv,ps,y,d,v,i,tw;

floatpvsf(floatx,floaty),dpf(floatz),wbf(floath,floatp);

printf("inputt=");

scanf("%f",&t);

printf("\n");

printf("inputtd=");

scanf("%f",&td);

printf("\n");

printf("inputp=");

scanf("%f",&p);

printf("\n");

if((t-td)<0){

printf("111111\n");

pv=pvsf(t,p);

ps=pvsf(td,p);

y=pv/ps;

d=622*pv/(p-pv);

v=2.1552*(273.16+t)*(1+0.0016078*d)/p;

i=0.24*t+(597.3+0.441*t)*d*0.001;

if(i<=0){tw=td;

printf("tw=%f\n",tw);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

else{

tw=wbf(i,p);

printf("tw=%f\n",tw);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

}

else

{printf("2222222\n");

pv=pvsf(td,p);

ps=pvsf(t,p);

y=pv/ps;

d=622*pv/(p-pv);

v=2.1552*(273.16+t)*(1+0.0016078*d)/p;

i=0.24*t+(597.3+0.441*t)*d*0.001;

if(i<=0){printf("333333\n");

tw=td;

printf("tw=%f\n",tw);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

else{printf("444444\n");

tw=wbf(i,p);

printf("tw=%f\n",tw);

printf("pv=%f\n",pv);

printf("d=%f\n",d);

printf("i=%f\n",i);

printf("v=%f\n",v);

printf("y=%f\n",y);

}

}

getch();

}

floatpvsf(floatx,floaty)

{floatT=0.0,z=0.0,a1=0.0,a2=0.0,a3=0.0,a4=0.0,a5=0.0,a6=0.0,p1=0.0,p2=0.0,z1=0.0,p3=0.0,z2=0.0,p4=0.0,s=0.0,ps=0.0;

T=x+273.16;

z=273.16/T;

a1=-10.79574;

a2=5.02808;

a3=-1.50475e-4;

a4=8.2969;

a5=0.42875e-3;

a6=-4.76955;

p1=a1*(z-1);

p2=a2*log10(z);

z1=a4*(1-(1/z));

p3=a3*(pow(10,z1)-1);

z2=a6*(z-1);

p4=a5*(pow(10,z2)-1)-2.2195768;

s=p1+p2+p3+p4;

ps=y*pow(10,s);

return(ps);

}

floatdpf(floatz)

{

floattd=0.0,y=0.0;

y=log(z);

if(z>4.581)

td=-18.807+11.005*y+0.8888*y*y;

else

td=-19.237+11.533*y+0.72733*y*y;

return(td);

}

floatwbf(floath,floatp)

{

floattw1=0.0,tw2=0.0,pv1=0.0,pv2=0.0,d1=0.0,d2=0.0,i1=0.0,i2=0.0,y=0.0,y1=0.0,y2=0.0,z=0.0,tw=0.0,k=0.0;

if(h<=0){

tw1=-5;

pv1=pvsf(tw1,p);

d1=622*pv1/(p-pv1);

i1=0.24*tw1+(597.3+0.441*tw1)*d1*0.001;

y1=h-i1;

do

{tw2=tw1-0.5;

pv2=pvsf(tw2,p);

d2=622*pv2/(p-pv2);

i2=0.24*tw2+(597.3+0.441*tw2)*d2*0.001;

y2=h-i2;

if(y1*y2<0){z=fabs(y1/y2);tw=(tw2*z)/(1+z);printf("tw=\n",tw);k=1;}

else

if(y1*y2==0){

if(y1==0){tw=tw1;printf("tw=\n",tw);k=1;}

else{tw=tw2;printf("tw=\n",tw);k=1;}

}

else{tw1=tw2;y1=y2;k=0;}

}

while(k==0);

}

else{y=log(h);

if(h>6.443){tw=6.0163-11.061*y+8.117*y*y-0.70713*y*y*y;}

else{tw=-3.171+2.5641*y+1.2776*y*y+0.45779*y*y*y;}

}

return(tw);

}

3、散热器选择计算编程

#include"stdio.h"

#include"conio.h"

#include"math.h"

main()

{inti;

floatFy[4],Fz[4],x,Ky,Kz,tn,A,B,B1,B2,B3,Yy,Yz,tg,G1,Qz[4],Qy[4],tgs[4],thsy[4],thsz[4],tpjz[4],tpjy[4],ny[4],nz[4],fz;

for(i=0;i<4;i++)

{

printf("Qy[%d]=",i);

scanf("%f",&Qy[i]);

printf("Qz[%d]=",i);

scanf("%f",&Qz[i]);

printf("\n");

}

printf("********************************************************\n");

printf("tn=");

scanf("%f",&tn);

printf("tg=");

scanf("%f",&tg);

printf("G1=");

scanf("%f",&G1);

printf("\n");

printf("B1=");

scanf("%f",&B1);

printf("B2=");

scanf("%f",&B2);

printf("B3=");

scanf("%f",&B3);

printf("\n");

printf("fz=");

scanf("%f",&fz);

printf("A=");

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1