




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單擊此處編輯母版副標(biāo)題樣式單擊此處編輯母版副標(biāo)題樣式 華中農(nóng)業(yè)大學(xué)理學(xué)院華中農(nóng)業(yè)大學(xué)理學(xué)院 章章 英英 C/C+語言程序設(shè)計語言程序設(shè)計 本講知識點:本講知識點: 三種循環(huán)構(gòu)造的掌握三種循環(huán)構(gòu)造的掌握 開關(guān)語句的掌握開關(guān)語句的掌握 跳轉(zhuǎn)語句、前往語句的掌握跳轉(zhuǎn)語句、前往語句的掌握 重點:重點: 流程控制構(gòu)造流程控制構(gòu)造 難點:難點: for循環(huán)構(gòu)造的執(zhí)行順序循環(huán)構(gòu)造的執(zhí)行順序第四講第四講 流程控制流程控制一、流程控制一、流程控制 對于算法設(shè)計、算法描畫中所出現(xiàn)的條件分支、循對于算法設(shè)計、算法描畫中所出現(xiàn)的條件分支、循環(huán)等構(gòu)造,環(huán)等構(gòu)造,C+言語需求有與之相應(yīng)語句實現(xiàn)。言語需求有與之相應(yīng)語句實現(xiàn)
2、。 曾經(jīng)證明:任何復(fù)雜的計算流程均可以被分解為以曾經(jīng)證明:任何復(fù)雜的計算流程均可以被分解為以下下3種構(gòu)造及其嵌套。種構(gòu)造及其嵌套。 順序構(gòu)造順序構(gòu)造 分支構(gòu)造分支構(gòu)造C+支持兩路分支、多分支支持兩路分支、多分支 循環(huán)構(gòu)造循環(huán)構(gòu)造C+提供提供3種根本循環(huán)語句種根本循環(huán)語句 C+還提供以下流程跳轉(zhuǎn)語句還提供以下流程跳轉(zhuǎn)語句(break,continue,return,goto等等),以方便程序構(gòu)造,以方便程序構(gòu)造控制??刂?。條件分支條件分支(if)語句語句 條件分支條件分支 整個構(gòu)造整個構(gòu)造“單入口、單出口單入口、單出口 if(表達式表達式) 語句語句1; else 語句語句2; if(表達式表達
3、式) 語句串語句串1; else 語句串語句串2; 表達式表達式 語句語句1 1 語句語句2 2 假零假零真非零真非零循環(huán)語句循環(huán)語句 C+提供提供3種實現(xiàn)循環(huán)算法的語句種實現(xiàn)循環(huán)算法的語句 while循環(huán)循環(huán) dowhile循環(huán)循環(huán) for循環(huán)循環(huán) 這這3種語句可以相互轉(zhuǎn)換種語句可以相互轉(zhuǎn)換 只用其中恣意一種格式可實現(xiàn)其他兩種格式編寫的只用其中恣意一種格式可實現(xiàn)其他兩種格式編寫的語句。語句。 它們各有其最適宜的運用場所。它們各有其最適宜的運用場所。 留意留意 “循環(huán)體語句執(zhí)行終了僅為循環(huán)體語句執(zhí)行終了僅為“終了本輪循環(huán),預(yù)備終了本輪循環(huán),預(yù)備進入下一輪循環(huán);進入下一輪循環(huán); 整個循環(huán)能否終了
4、,主要看整個循環(huán)能否終了,主要看“繼續(xù)循環(huán)條件能否為繼續(xù)循環(huán)條件能否為假。應(yīng)該防止無窮循環(huán)亦稱假。應(yīng)該防止無窮循環(huán)亦稱“永真循環(huán)或永真循環(huán)或“死循死循環(huán)。環(huán)。while循環(huán)語句循環(huán)語句 表達式為能否繼續(xù)循環(huán)的條件;表達式為能否繼續(xù)循環(huán)的條件; 先判別條件,循環(huán)體能夠執(zhí)行先判別條件,循環(huán)體能夠執(zhí)行0次、次、1次或多次。次或多次。 while(表達式表達式) 循環(huán)體語句循環(huán)體語句; while(表達式表達式) 循環(huán)體語句串循環(huán)體語句串; 表達式表達式 循環(huán)體語句循環(huán)體語句 假零假零真非零真非零dowhile循環(huán)循環(huán) 先執(zhí)行循環(huán)體,使循環(huán)體至少被執(zhí)行一次;先執(zhí)行循環(huán)體,使循環(huán)體至少被執(zhí)行一次; 建議
5、用一對花括號將循環(huán)體語句包圍起來即使循環(huán)體為建議用一對花括號將循環(huán)體語句包圍起來即使循環(huán)體為單語句,并且將右花括號寫在單語句,并且將右花括號寫在while前前(見上面的第二種見上面的第二種寫法寫法),以明顯地域別于,以明顯地域別于while循環(huán)。循環(huán)。 do 循環(huán)體語句循環(huán)體語句; while(表達式表達式); do 循環(huán)體語句循環(huán)體語句; while(表達式表達式);表達式表達式 循環(huán)體語句循環(huán)體語句 假零假零真真#include /4-1.cppusing namespace std;int main() int i,sum; i=1; while(i=100) sum += i; cou
6、tsum = sum endl; return 0;程序改錯程序改錯請用請用do-while改寫!改寫!sum=0;i+;#include /4-2.cppusing namespace std;int main() int i,sum=0; i=1; do sum += i; i+; while(i=100); coutsum = sum endl; return 0;用用do-while改寫改寫實戰(zhàn)練習(xí)實戰(zhàn)練習(xí) 輸出正整數(shù)輸出正整數(shù)n的一切約數(shù)。的一切約數(shù)。#include /4-3.cpp#includeusing namespace std;int main()int i,n;cout
7、n;if (n1) exit(0);coutn的一切約數(shù)為:的一切約數(shù)為:;i=0;while(in)i+;if (n%i=0) couti ;coutendl; return 0;for循環(huán)循環(huán) 表達式表達式1 1被且僅被執(zhí)行一次;被且僅被執(zhí)行一次; 3 3個表達式均可缺省,缺省表達式個表達式均可缺省,缺省表達式2 2表示表示truetrue,但兩個分號不能缺?。?,但兩個分號不能缺??; 可以將循環(huán)體語句與表達式可以將循環(huán)體語句與表達式3 3合并。合并。for(表達式表達式1; 表達式表達式2; 表達式表達式3) 循環(huán)體語句循環(huán)體語句;for(表達式表達式1; 表達式表達式2; 表達式表達式3
8、) 循環(huán)體語句串循環(huán)體語句串;表達式表達式2 2 循環(huán)體語句循環(huán)體語句 假假(零零) 真真 (非零非零) 表達式表達式3 3 表達式表達式1 1 用公式:用公式:/4 1-1/3+1/5-1/7+求求的近似值,直到最后一項的絕對值小于的近似值,直到最后一項的絕對值小于10-6為止為止實戰(zhàn)練習(xí)實戰(zhàn)練習(xí)#include /4-4.cpp#includeusing namespace std;int main()float n,t,pi;int s;t=1; pi=0;s=1;for(n=1.0; fabs(t)1e-6; n=n+2 )pi=pi+t;s=-s;t=s/n;pi=pi*4;cout
9、pi=piendl; return 0;開關(guān)語句開關(guān)語句switch(整型或枚舉型表達式整型或枚舉型表達式)case 常量表達式常量表達式1: 語句組語句組1;case 常量表達式常量表達式2: 語句組語句組2; case 常量表達式常量表達式n: 語句組語句組n;default: 語句組語句組n+1;實戰(zhàn)練習(xí)實戰(zhàn)練習(xí) 輸入一個十進制數(shù),根據(jù)輸入的數(shù)輸出所對應(yīng)輸入一個十進制數(shù),根據(jù)輸入的數(shù)輸出所對應(yīng)的星期幾,假設(shè)所輸入的數(shù)小于的星期幾,假設(shè)所輸入的數(shù)小于1或大于或大于7,那,那么輸出么輸出“出錯。出錯。#include /4-5.cppusing namespace std;int main(
10、)int day;coutday;switch (day)case 1: cout星期一星期一endl; case 2: cout星期二星期二endl; case 3: cout星期三星期三endl; case 4: cout星期四星期四endl; case 5: cout星期五星期五endl; case 6: cout星期六星期六endl; case 7: cout星期天星期天endl; default:cout超出范圍!超出范圍!endl;return 0;#include /改良后的程序改良后的程序 4-6.cppusing namespace std;int main()int day
11、;coutday;switch (day)case 1: cout星期一星期一endl; break;case 2: cout星期二星期二endl; break;case 3: cout星期三星期三endl; break;case 4: cout星期四星期四endl; break;case 5: cout星期五星期五endl; break;case 6: cout星期六星期六endl; break;case 7: cout星期天星期天endl; break;default:cout超出范圍!超出范圍!endl;return 0;實戰(zhàn)練習(xí)實戰(zhàn)練習(xí)標(biāo)題:將百分制的分數(shù)轉(zhuǎn)換為標(biāo)題:將百分制的分數(shù)轉(zhuǎn)換
12、為5個等級個等級90分以上為分以上為A,8089分為分為B,7079分為分為C,6069分為分為D,60分以下為分以下為E。例如,輸入例如,輸入75,那么顯示,那么顯示C?!痉治觥肯扰袆e輸入的數(shù)據(jù)能否在合理的分數(shù)范圍【分析】先判別輸入的數(shù)據(jù)能否在合理的分數(shù)范圍0100內(nèi),然后再判別是哪個分數(shù)段:內(nèi),然后再判別是哪個分數(shù)段:90分以上輸出分以上輸出A,8089分分輸出輸出B,7079分輸出分輸出C,6069分輸出分輸出D,否那么顯示,否那么顯示E。 用用if語句實現(xiàn)語句實現(xiàn)if( s100) cout=90) cout=80) cout=70) cout=60) coutDn;elsecoutE
13、n;#include /4-7.cppusing namespace std;int main()int s;couts;if( s100) couterrorn;else用用switch語句實現(xiàn)語句實現(xiàn) 運用運用switch語句,當(dāng)然最笨的方法是每一個分數(shù)一個語句,當(dāng)然最笨的方法是每一個分數(shù)一個case分支。有沒有簡化的方法呢?分支。有沒有簡化的方法呢?switch(s/10) /根據(jù)轉(zhuǎn)換值進展分支選擇根據(jù)轉(zhuǎn)換值進展分支選擇case 10:case 9:coutAn;break;case 8:coutBn;break;case 7: coutCn;break;case 6:coutDn;br
14、eak;default:coutEn;return 0; 跳轉(zhuǎn)語句跳轉(zhuǎn)語句 break 僅終了其所在的一層循環(huán)語句或者開關(guān)語句僅終了其所在的一層循環(huán)語句或者開關(guān)語句 continue 提早終了本輪循環(huán),預(yù)備進入下一輪循環(huán)提早終了本輪循環(huán),預(yù)備進入下一輪循環(huán) return 前往語句,用于函數(shù)終了時前往語句,用于函數(shù)終了時 return; 對應(yīng)與前往類型為對應(yīng)與前往類型為 void 的函數(shù)的函數(shù) return 表達式表達式; 表達式的數(shù)據(jù)類型對應(yīng)于函數(shù)的前往類型表達式的數(shù)據(jù)類型對應(yīng)于函數(shù)的前往類型 goto 不提倡運用。建議不要運用。不提倡運用。建議不要運用。for循環(huán)中的循環(huán)中的break及及c
15、ontinue C+支持大型軟件開發(fā)支持大型軟件開發(fā) 顯然,不宜將一切的語句都寫入主函數(shù)顯然,不宜將一切的語句都寫入主函數(shù) 其實,應(yīng)該使主函數(shù)盡能夠地簡單。主要起調(diào)度作用,其實,應(yīng)該使主函數(shù)盡能夠地簡單。主要起調(diào)度作用,控制其他功能模塊即其他函數(shù)的調(diào)用;控制其他功能模塊即其他函數(shù)的調(diào)用; 函數(shù)逐個調(diào)用及前往,實現(xiàn)多種功能。函數(shù)逐個調(diào)用及前往,實現(xiàn)多種功能。 啟動程序執(zhí)行時,將使主函數(shù)自動執(zhí)行;啟動程序執(zhí)行時,將使主函數(shù)自動執(zhí)行; 在主函數(shù)中遇到在主函數(shù)中遇到return語句將引起程序終了。語句將引起程序終了。二、根本程序擴展二、根本程序擴展主函數(shù)主函數(shù) 功能函數(shù)功能函數(shù)1 功能函數(shù)功能函數(shù)2
16、功能函數(shù)功能函數(shù)3 功能函數(shù)功能函數(shù)4 功能函數(shù)功能函數(shù)5 功能函數(shù)功能函數(shù)6 例如:例如:改編改編“算術(shù)檢驗程序之二算術(shù)檢驗程序之二 設(shè)計設(shè)計“加法檢驗功能函數(shù)加法檢驗功能函數(shù) 首先將原來的主函數(shù)名改成首先將原來的主函數(shù)名改成 add_test; 去掉輸出成果語句,將檢驗成果作為該函數(shù)的前往去掉輸出成果語句,將檢驗成果作為該函數(shù)的前往值值 return score; 設(shè)計主函數(shù),調(diào)用設(shè)計主函數(shù),調(diào)用add_test函數(shù)函數(shù) 今后可擴展今后可擴展主函數(shù)主函數(shù) 加法檢驗加法檢驗 減法檢驗減法檢驗 / test3.cpp #include using namespace std; int add_
17、test();/ 函數(shù)聲明函數(shù)聲明 int main()/ 主函數(shù)盡能夠地簡單主函數(shù)盡能夠地簡單 int score; score = add_test();/ 函數(shù)調(diào)用函數(shù)調(diào)用(執(zhí)行語句執(zhí)行語句) cout 成果:成果: score 分分 endl; return 0; int add_test() / 函數(shù)定義函數(shù)定義(函數(shù)實現(xiàn)函數(shù)實現(xiàn)) int x, y, z; int i, score; time_t t; srand(time(&t);/ 為了獲得更好的隨機性為了獲得更好的隨機性 score = 0; i = 0; while(i10) x = rand() % 21; y
18、= rand() % 21; cout x + y z; if(x+y = z) score += 10; i+; return score;/ 前往測試成果前往測試成果 / test3.cpp添加減法檢驗功能添加減法檢驗功能(請參見請參見2.3.2小節(jié)小節(jié)) #include using namespace std; int add_test(), sub_test();/ 函數(shù)聲明函數(shù)聲明 int main()/ 主函數(shù)起調(diào)度作用主函數(shù)起調(diào)度作用 int score, choice=1; while(choice) cout n1-加法測試加法測試 n2-減法測試減法測試 n0-退出退出 choice; switch(choice) case 1: score = add_test(); break; case 2: score = sub_test(); break; cout 成果成果 score 分分 endl; return 0; / / 簡易菜單簡易菜單/ / 接納選擇接納選擇/ / 依選擇分情況處置依選擇分情況處置/新增擴展部分新增擴展部分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實習(xí)協(xié)議書參考范本5篇
- 留學(xué)生擔(dān)保人連帶責(zé)任協(xié)議
- 油庫直擊雷防護驅(qū)雷裝置 儲油罐接地電阻在線監(jiān)測儀
- 6陶罐和鐵罐 教學(xué)設(shè)計-2023-2024學(xué)年語文三年級下冊統(tǒng)編版
- 法律知識范本廣告制作合同8篇
- 信息技術(shù)必修1數(shù)據(jù)與計算 1.1我們身邊的數(shù)據(jù) 教學(xué)設(shè)計
- Unit 2 My week Part B Read and write Part C Story time(教學(xué)設(shè)計)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 高中信息技術(shù)選修3教學(xué)設(shè)計-2.2.1 因特網(wǎng)的地址2-粵教版
- 第17課《短文兩篇》教學(xué)設(shè)計-2023-2024學(xué)年統(tǒng)編版語文七年級下冊
- Unit 3 Amazing animals整體(教學(xué)設(shè)計)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 瀝青集料篩分反算計算表格(自動計算)
- 2023年國家護理質(zhì)量數(shù)據(jù)平臺
- 惡性高熱課件
- 真空滅弧室基本知識課件
- 川教版四年級(上、下冊)生命生態(tài)與安全教案及教學(xué)計劃附安全知識
- 工齡認定文件
- 教師招聘考試歷年真題(物理)及答案
- 給藥護理 口服給藥法
- 初中歷史人教版八年級上經(jīng)濟和社會生活中國近代民族工業(yè)的發(fā)展
- YS/T 562-2009貴金屬合金化學(xué)分析方法鉑釕合金中釕量的測定硫脲分光光度法
- 2023年濰坊工程職業(yè)學(xué)院高職單招(語文)試題庫含答案解析
評論
0/150
提交評論