利用Turbo C 2.0編程軟件實ç¾å”æ¿æµé‡è¨ˆçš„計算
時間:2006-11-24 09:54:00來æºï¼šwangsl
導語:?C 語言是1972年由美國的Dennis Ritchieè¨è¨ˆç™¼æ˜Žçš„, 并首次在UNIXæ“作系統 çš„ DEC PDP-11 計算機上使用。
一〠C語言的起æº
  C 語言是1972年由美國的Dennis Ritchieè¨è¨ˆç™¼æ˜Žçš„, 并首次在UNIXæ“作系統 çš„ DEC PDP-11 計算機上使用。 它由早期的編程語言 BCPL( Basic Combind Programming Language) 發展演變而來。在1970å¹´, AT&T è²çˆ¾å¯¦é©—室的 Ken Thompsonæ ¹æ“šBCPL語言è¨è¨ˆå‡ºè¼ƒå…ˆé€²çš„å¹¶å–å為 B的語言, 最åŽå°Žäº†C 語言的å•世。 隨著微型計算機的日益普åŠ, 出ç¾äº†è¨±å¤šC 語言版本。由于沒有統一的標準, 使得這些C 語言之間出ç¾äº†ä¸€äº›ä¸ä¸€è‡´çš„地方。為了改變這種情æ³, 美國國家標準 ç ”ç©¶æ‰€ï¼ˆANSI)為C 語言制定了一套ANSI標準, æˆç‚ºç¾è¡Œçš„C語言標準[1]。
  二ã€C 語言的特點
  C 語言發展如æ¤è¿…速, 而且æˆç‚ºæœ€å—æ¡è¿Žçš„語言之一, 主è¦å› 為它具有強大的功能。許多著å的系統軟件, 如DBASE â…¢ PLUSã€DBASE â…£ 都是由C 語言編寫的。用C èªžè¨€åŠ ä¸Šä¸€äº›åŒ¯ç·¨èªžè¨€å程åº, 就更能顯示C 語言的優勢了, 象PC- DOS ã€WORDSTARç‰å°±æ˜¯ç”¨é€™ç¨®æ–¹æ³•編寫的。æ¸ç´èµ·ä¾†C 語言具有下列特點:
  1. C是ä¸ç´šèªžè¨€
ã€€ã€€å®ƒæŠŠé«˜ç´šèªžè¨€çš„åŸºæœ¬çµæ§‹å’Œèªžå¥èˆ‡ä½Žç´šèªžè¨€çš„實用性çµåˆèµ·ä¾†ã€‚C 語言å¯ä»¥è±¡åŒ¯ç·¨èªžè¨€ä¸€æ¨£å°ä½ã€å—節和地å€é€²è¡Œæ“作, 而這三者是計算機最基本的工作單元。
  2. Cæ˜¯çµæ§‹å¼èªžè¨€
ã€€ã€€çµæ§‹å¼èªžè¨€çš„é¡¯è‘—ç‰¹é»žæ˜¯ä»£ç¢¼åŠæ•¸æ“šçš„分隔化, å³ç¨‹åºçš„å„個部分除了必è¦çš„ä¿¡æ¯äº¤æµå¤–å½¼æ¤ç¨ç«‹ã€‚é€™ç¨®çµæ§‹åŒ–æ–¹å¼å¯ä½¿ç¨‹åºå±¤æ¬¡æ¸…æ™°, 便于使用ã€ç¶è·ä»¥åŠèª¿è©¦ã€‚C èªžè¨€æ˜¯ä»¥å‡½æ•¸å½¢å¼æä¾›çµ¦ç”¨æˆ¶çš„, é€™äº›å‡½æ•¸å¯æ–¹ä¾¿çš„調用, å¹¶å…·æœ‰å¤šç¨®å¾ªç’°ã€æ¢ä»¶èªžå¥æŽ§åˆ¶ç¨‹åºæµå‘, 從而使程åºå®Œå…¨çµæ§‹åŒ–。
  3. C語言功能齊全
  C 語言具有å„ç¨®å„æ¨£çš„æ•¸æ“šé¡žåž‹, å¹¶å¼•å…¥äº†æŒ‡é‡æ¦‚念, å¯ä½¿ç¨‹åºæ•ˆçŽ‡æ›´é«˜ã€‚å¦å¤–C 語言也具有強大的圖形功能, 支æŒå¤šç¨®é¡¯ç¤ºå™¨å’Œé©…動器。而且計算功能ã€é‚輯判斷功能也比較強大, å¯ä»¥å¯¦ç¾æ±ºç–目的。
  4. C語言é©ç”¨èŒƒåœå¤§
  C 語言還有一個çªå‡ºçš„優點就是é©åˆäºŽå¤šç¨®æ“作系統, 如DOSã€UNIX,也é©ç”¨äºŽ 多種機型[1]。
  三〠Turbo C 2.0集æˆç·¨ç¨‹ç’°å¢ƒ
  Turbo C 2.0最好安è£åœ¨ç¡¬ç›¤ç‰¹å®šçš„目錄下,如“D:\ TCï¼ˆä¸‹ä¾æ¬¡ç‚ºä¾‹ï¼‰ï¼Œå¯å†ä»¥ç« 為單ä½å»ºç«‹ä¸‹ç´šç›®éŒ„,如D1ã€D2。DOS下éµå…¥TC↙(回車)第一次é‹è¡Œï¼Œé¡¯ç¤ºä¸»å±æš®å¦‚圖1ï¼1所示。
  進入 Turbo C 2.0集æˆç·¨ç¨‹ç•Œé¢ã€‚(注:第一次進入Turbo C 2.0集æˆç·¨ç¨‹ç•Œé¢æ™‚,需è¦å°Turbo C 2.0集æˆç·¨ç¨‹ç•Œé¢é€²è¡Œå¿…è¦çš„è¨ç½®ã€‚按下F10鵿¿€æ´»èœå–®ï¼Œé€²å…¥Optionsåèœå–®ï¼Œæœ‰7é …ã€‚ç¬¬4é …Directoriesä¸ã€‚修改3處:“Include directories::D:\ TC \ TC20 \ INCLUDEâ€ï¼Œâ€œLibrary directories:D:\ TC \ TC20 \ LIBâ€ï¼Œâ€œTurbo C directory:D:\ TC \ TC20 â€ã€‚按ESCéµé€€å›žã€‚鏿“‡â€œSave optionsâ€ï¼Œåœ¨â€œConfig Fileâ€çª—å£ä¸é¸æ“‡â€œD:\ TC \ TC20 \ TCCONFIG.TC “,覆蓋å˜ç›¤ã€‚最åŽé‚„æé†’一點:FILESä¸çš„Change dir(改變當å‰ç›®éŒ„ï¼‰ä¸æ‡‰è¨ç½®ç‚ºç•¶å‰ç¨‹åºæ‰€åœ¨ç›®éŒ„。)
å››ã€åˆ©ç”¨Turbo C 2.0ç·¨ç¨‹è»Ÿä»¶ç·¨å¯«å”æ¿æµé‡è¨ˆå”徑的計算程åº
求:20℃情æ³ä¸‹å”æ¿ç¯€æµå”直徑d20
  已知æ¢ä»¶ï¼š
ã€€ã€€è³ªé‡æµé‡Qmax,Qcom,Qmin(kg/h);æ“作密度M (kg/m3); 動力é»åº¦N (mPa?s); 20℃情æ³ä¸‹å·¥è—管é“內徑D20(m); æ£å¸¸æ“作壓力P MPa(G);æ£å¸¸æ“作溫度T ï¼ˆâ„ƒï¼‰ï¼›ç®¡é“æè³ªçš„ç·šè†¨è„¹ç³»æ•¸rDï¼› 唿¿æè³ªçš„線膨脹系數rd ï¼›
  通éŽè¨ˆç®—åŽæ‰€å¾—的數據:
  æ£å¸¸æ“作溫度T情æ³ä¸‹å·¥è—管é“內徑D(m);雷諾數ReD;計算差壓上é™å€¼CPcom å’ŒCPmaxï¼›
  計算A2[2] ï¼›è¨ˆç®—å”æ¿æµé‡è¨ˆçš„æµå‡ºç³»æ•¸C[2]
  在知é“äº†ç›¸æ‡‰çš„å·¥è—æ¢ä»¶åŽï¼Œä¸‹é¢æˆ‘就利用Turbo C 2.0ç·¨ç¨‹è»Ÿä»¶ç·¨å¯«å”æ¿æµé‡è¨ˆå”徑的計算程åºã€‚首先,在開始å‰ï¼Œæˆ‘é‚„è¦å…ˆä»‹ç´¹ä¸€ä¸‹Turbo C 2.0相關的幾個基本函數,然åŽé€šéŽæ‡‰ç”¨é€™äº›å‡½æ•¸ä¾†ç·¨å¯«å”æ¿æµé‡è¨ˆå”徑的計算程åºã€‚
  1 數å¸å‡½æ•¸ 包å«åœ¨å¦‚表1ï¼1æ‰€ç¤ºï¼šï¼ˆæ³¨ï¼šä½¿ç”¨æ™‚åœ¨æºæ–‡ä»¶å‰åŠ å‘½ä»¤è¡Œï¼š
# include)
  2 由上é¢çš„已知æ¢ä»¶å’ŒTurbo C 2.0的數å¸å‡½æ•¸ï¼Œé€šéŽTurbo C 2.0ç·¨ç¨‹è»Ÿä»¶ç·¨å¯«å”æ¿æµé‡è¨ˆå”徑的計算程åºå¦‚下:
#include
main()
ï½› int n;
const float pai=3.141592653289;
const float b0=0.500000;
const float C0=0.606000;
float Qmax,Qcom,Qmin,M,N,D20,rD,rd,T=0.0,b,D,ReD,CPmax,CPcom,A2,
L,C,C1,b1,b2,d,d20;
printf("Qmax,Qcom,Qmin,M,N,D20,rD,rd,T=\n");
scanf("%f%f%f%f%e%f%e%e%f",&Qmax,&Qcom,&Qmin,&M,&N,&D20,&rD,&rd,&T);
/*輸入已知的工è—åƒæ•¸ï¼Š/
D=D20*(1+rD*(T-20));
ReD=4*Qcom/(3600*pai*N*D);
CPcom=pow(4*Qcom*sqrt(1-pow(b0,4))/(3600*pai*b0*b0*D*D*C0),2)*1/(2*M);
CPmax=CPcom*pow((Qmax/Qcom),2);
A2=4*Qcom/(3600*pai*D*D*sqrt(2*25e3*M));
printf("CPcom=%6.10f\n",CPcom);
printf("CPmax=%6.10f\n",CPmax);
if(ReD>2e5) /*利用Turbo Cçš„if判斷語å¥å°é›·è«¾æ•¸é€²è¡Œåˆ¤æ–·è¨ˆç®—*/
ï½›b=pow(1+pow((0.60/A2),2),-0.25);ï½
if(ReD<2e5)
ï½›b=pow(1+pow((0.60/A2+0.06),2),-0.25);ï½
L=0.0254/D;
C=0.5961+
0.0261*pow(b,2)-
0.216*pow(b,8)+
0.000521*pow(((pow(10,6)*b)/ReD),0.7)+
((0.0188+0.0063*pow((19000*b/ReD),0.8)))*pow(b,3.5)*pow((pow(10,6)/ReD),0.3)+
(0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b/ReD),0.8))*
(pow(b,4)/(1-pow(b,4)))-
0.031*(2*L/(1-b)-0.8*pow(2*L/(1-b),1.1))*pow(b,1.3);
b1=pow(1+pow((C/A2),2),-0.25);
C1=0.5961+
0.0261*pow(b1,2)-
0.216*pow(b1,8)+
0.000521*pow(((pow(10,6)*b1)/ReD),0.7)+
((0.0188+0.0063*pow((19000*b1/ReD),0.8)))*pow(b1,3.5)*pow((pow(10,6)/ReD),0.3)+
(0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b1/ReD),0.8))*
(pow(b1,4)/(1-pow(b1,4)))-
0.031*(2*L/(1-b1)-0.8*pow(2*L/(1-b1),1.1))*pow(b1,1.3);
b2=pow(1+pow((C1/A2),2),-0.25);
for(n=2;fabs(b2-b1)>1.0e-10;n++) /*利用Turbo Cçš„for循環語å¥é€²è¡Œè¿ä»£è¨ˆç®—*/
ï½›
b=b1;
C=0.5961+
0.0261*pow(b,2)-
0.216*pow(b,8)+
0.000521*pow(((pow(10,6)*b)/ReD),0.7)+
((0.0188+0.0063*pow((19000*b/ReD),0.8)))*pow(b,3.5)*pow((pow(10,6)/ReD),0.3)+
(0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b/ReD),0.8))*
(pow(b,4)/(1-pow(b,4)))-
0.031*(2*L/(1-b)-0.8*pow(2*L/(1-b),1.1))*pow(b,1.3);
b1=pow(1+pow((C/A2),2),-0.25);
C1=0.5961+
0.0261*pow(b1,2)-
0.216*pow(b1,8)+
0.000521*pow(((pow(10,6)*b1)/ReD),0.7)+
((0.0188+0.0063*pow((19000*b1/ReD),0.8)))*pow(b1,3.5)*pow((pow(10,6)/ReD),0.3)+
(0.043+0.080*exp(-10*L)-0.123*exp(-7*L))*(1-0.11*pow((19000*b1/ReD),0.8))*
(pow(b1,4)/(1-pow(b1,4)))-
0.031*(2*L/(1-b1)-0.8*pow(2*L/(1-b1),1.1))*pow(b1,1.3);
b2=pow(1+pow((C1/A2),2),-0.25);
ï½
printf("C1=%6.10f\n",C1); /ï¼Šè¼¸å‡ºè¨ˆç®—å”æ¿æµé‡è¨ˆçš„æµå‡ºç³»æ•¸C1*/
printf("b2=%6.10f\n\n",b2); /ï¼Šè¼¸å‡ºè¨ˆç®—å”æ¿æµé‡è¨ˆçš„直徑比b2*/
d=D*b2;
d20=d/(1+rd*(T-20));
printf("d20=%6.10f\n\n",d20);
/ï¼Šè¼¸å‡ºè¨ˆç®—å”æ¿æµé‡è¨ˆåœ¨20℃情æ³ä¸‹å”æ¿ç¯€æµå”直徑d20*/
ï½
ä»¥ä¸Šå°±æ˜¯è¨ˆç®—å”æ¿æµé‡è¨ˆå”徑的計算程åºã€‚é€šéŽæ¤ç¨‹åºå¯ä»¥å¾ˆå¿«çš„è¨ˆç®—å‡ºå”æ¿æµé‡è¨ˆåœ¨20℃情æ³ä¸‹å”æ¿ç¯€æµå”å”徑的大å°ã€‚
五 應 用
實例一:
①被測æµé«” :水;
â‘¡ æµé«”æµé‡ï¼šæœ€å¤§æµé‡Qmaxï¼500t/h;æ£å¸¸æµé‡Qcomï¼400t/h;æœ€å°æµé‡Qminï¼200t/h
â‘¢ æ£å¸¸æ“作壓力:Pï¼14.6 MPa(G);
â‘£ æ£å¸¸æ“作溫度:Tï¼220 ℃;
⑤ 20℃情æ³ä¸‹å·¥è—管é“內徑:D20ï¼233㎜;
â‘¥ ç®¡é“æè³ªçš„ç·šè†¨è„¹ç³»æ•¸ï¼šrDï¼11.16e-6㎜/㎜?℃;
⑦ 唿¿æè³ªçš„線膨脹系數:rd=16.60e-6 ㎜/㎜?℃;
â‘§ æ“作密度:Mï¼850.9082 (kg/m3);
⑨ 動力é»åº¦ï¼šNï¼0.124 (mPa?s) ï¼›
按下Ctrl+F9é‹è¡Œè¨ˆç®—程åºï¼šï¼ˆæ³¨æ„單使›ç®—)
è¦æ±‚輸入已知的工è—åƒæ•¸ï¼šQmax, Qcom, Qmin, M, N, D20, rD, rd, T =
500000 400000 200000 850.9082 124e-6 .233 11.16e-6 16.60e-6 233↙(回車)
ç¶“éŽç¨‹åºçš„é‹ç®—å¾—åˆ°å¦‚ä¸‹çš„çµæžœï¼šï¼ˆæŒ‰ä¸‹Alt+F5æŸ¥çœ‹çµæžœï¼‰
CPcom=166259.4432591512
CPmax=257980.3725675625
C1=0.6023605334
b2=0.5024122240
d20=0.116966338
實例二:
①測æµé«” :汽油;
â‘¡ æµé«”æµé‡ï¼šæœ€å¤§æµé‡Qmaxï¼40000 kg/h;æ£å¸¸æµé‡Qcomï¼31250 kg/h;
æœ€å°æµé‡Qminï¼20000 kg/h
â‘¢ æ£å¸¸æ“作壓力:Pï¼0.80 MPa(G);
â‘£ æ£å¸¸æ“作溫度:Tï¼40 ℃;
⑤ 20℃情æ³ä¸‹å·¥è—管é“內徑:D20ï¼102㎜;
â‘¥ ç®¡é“æè³ªçš„ç·šè†¨è„¹ç³»æ•¸ï¼šrDï¼11.16e-6㎜/㎜?℃;
⑦ 唿¿æè³ªçš„線膨脹系數:rd=16.60e-6 ㎜/㎜?℃;
â‘§ æ“作密度:Mï¼720 (kg/m3);
⑨ 動力é»åº¦ï¼šNï¼0.3000 (mPa?s) ï¼›
按下Ctrl+F9é‹è¡Œè¨ˆç®—程åºï¼šï¼ˆæ³¨æ„單使›ç®—)
è¦æ±‚輸入已知的工è—åƒæ•¸ï¼šQmax, Qcom, Qmin, M, N, D20, rD, rd, T =
40000 31250 20000 720 300e-6 .102 11.16e-6 16.60e-6 40↙(回車)
ç¶“éŽç¨‹åºçš„é‹ç®—å¾—åˆ°å¦‚ä¸‹çš„çµæžœï¼šï¼ˆæŒ‰ä¸‹Alt+F5æŸ¥çœ‹çµæžœï¼‰
CPcom=31982.3496093750
CPmax=52399.8828125000
C1=0.6041094065
b2=0.5007327199
d20=0.051069240
實例三:
①測æµé«” ï¼šå ¿æ¶²ï¼›
â‘¡ æµé«”æµé‡ï¼šæœ€å¤§æµé‡Qmaxï¼6000 kg/h;æ£å¸¸æµé‡Qcomï¼5000 kg/h;
æœ€å°æµé‡Qminï¼3000 kg/h
â‘¢ æ£å¸¸æ“作壓力:Pï¼0.65 MPa(G);
â‘£ æ£å¸¸æ“作溫度:Tï¼40 ℃;
⑤ 20℃情æ³ä¸‹å·¥è—管é“內徑:D20ï¼52㎜;
â‘¥ ç®¡é“æè³ªçš„ç·šè†¨è„¹ç³»æ•¸ï¼šrDï¼11.16e-6㎜/㎜?℃;
⑦ 唿¿æè³ªçš„線膨脹系數:rd=16.60e-6 ㎜/㎜?℃;
â‘§ æ“作密度:Mï¼1112 (kg/m3);
⑨ 動力é»åº¦ï¼šNï¼2.0000 (mPa?s) ï¼›
按下Ctrl+F9é‹è¡Œè¨ˆç®—程åºï¼šï¼ˆæ³¨æ„單使›ç®—)
è¦æ±‚輸入已知的工è—åƒæ•¸ï¼šQmax, Qcom, Qmin, M, N, D20, rD, rd, T =
6000 5000 23000 1112 2000e-6 .052 11.16e-6 16.60e-6 40↙(回車)
ç¶“éŽç¨‹åºçš„é‹ç®—å¾—åˆ°å¦‚ä¸‹çš„çµæžœï¼šï¼ˆæŒ‰ä¸‹Alt+F5æŸ¥çœ‹çµæžœï¼‰
CPcom=7848.1137695312
CPmax=11301.2841796875
C1=0.6153961420
b2=0.5284164548
d20=0.027457322
  å…ï¼šçµæŸèªž
  通éŽä¸Šè¿°å¯¦ä¾‹å°å”æ¿æµé‡è¨ˆå”徑的計算程åºé€²ä¸€æ¥çš„åšäº†é©—è‰ï¼Œå¯ä»¥å¾—到如下çµè«–:一,利用æ¤ç¨‹åºå¯ä»¥ç²¾ç¢ºçš„計算出ä¸åŒä»‹è³ªã€ä¸åŒæº«åº¦ã€ä¸åŒæµé‡ç‰æ¢ä»¶ä¸‹çš„唿¿æµé‡è¨ˆå”徑的大å°ï¼›äºŒï¼šåˆ©ç”¨æ¤ç¨‹åºè¨ˆç®—唿¿æµé‡è¨ˆå”徑的特點是快速,簡單ã€è¨ˆç®—é‡å°ï¼›ä¸‰ï¼šåˆ©ç”¨æ¤ç¨‹åºç‚ºä»ŠåŽçš„è¨è¨ˆæä¾›äº†ä¸€å¥—有åºçš„計算方法。
åƒ è€ƒ æ–‡ ç»
[1] éƒç¹¼å±•.æ–°ç·¨C語言程åºè¨è¨ˆ[M].北京:機械工æ¥å‡ºç‰ˆç¤¾,2004. 2-3.
[2] 嫿·®æ¸…,王建ä¸,æµé‡æ¸¬é‡ç¯€æµè£ç½®è¨è¨ˆæ‰‹å†Š[M].化å¸å·¥æ¥å‡ºç‰ˆç¤¾,2006. 13.
 
作者單ä½ï¼šå¯¶å¡”石化集團(有é™å…¬å¸ï¼‰  
地å€ï¼šéŠ€å·å¸‚高新å€ä¸å¤®å¤§é“寶塔大廈19樓è¨è¨ˆé™¢ã€€750002 
Email:sunyj.58@163.com
標簽: