版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 第第6 講講: 程序結(jié)構(gòu)設(shè)計(jì)程序結(jié)構(gòu)設(shè)計(jì)(下下)(參考教材的第參考教材的第3章章)2015-10-262 主要內(nèi)容u循環(huán)程序設(shè)計(jì):3種循環(huán)控制語句u綜合程序設(shè)計(jì)舉例3 3 3. .4 4循環(huán)程序設(shè)計(jì)循環(huán)程序設(shè)計(jì)-基本概念基本概念n用順序結(jié)構(gòu)和分支結(jié)構(gòu)能解決所有問題嗎?用順序結(jié)構(gòu)和分支結(jié)構(gòu)能解決所有問題嗎?n計(jì)算機(jī)是一個(gè)計(jì)算機(jī)是一個(gè)“偉大傻瓜偉大傻瓜”,特征是不厭其煩地做,特征是不厭其煩地做同樣的操作,這是通過同樣的操作,這是通過循環(huán)語句循環(huán)語句實(shí)現(xiàn)的實(shí)現(xiàn)的n 對(duì)某些問題,在尋找它的解時(shí)需要檢查對(duì)某些問題,在尋找它的解時(shí)需要檢查所有的可所有的可能的方案能的方案,從中找出可行解。這種解決問題的
2、方法,從中找出可行解。這種解決問題的方法稱為稱為枚舉法或窮舉法枚舉法或窮舉法. .該方法就是采用循環(huán)來實(shí)現(xiàn)。該方法就是采用循環(huán)來實(shí)現(xiàn)。4 3.4 3.4 循環(huán)程序設(shè)計(jì)循環(huán)程序設(shè)計(jì)-基本概念基本概念當(dāng)條件滿足當(dāng)條件滿足 循環(huán)體循環(huán)體 當(dāng)型循環(huán)當(dāng)型循環(huán) 循環(huán)體循環(huán)體 直到條件滿足直到條件滿足直到型循環(huán)直到型循環(huán)5 3.4 3.4 循環(huán)程序設(shè)計(jì)循環(huán)程序設(shè)計(jì) l C+C+語言提供了語言提供了3 3種循環(huán)控制語句種循環(huán)控制語句: : (1) (1)whilewhile語句語句 (2) (2)do-whiledo-while語句語句 (3)for (3)for 語句語句l 循環(huán)條件設(shè)計(jì):循環(huán)次數(shù)有限(循環(huán)
3、條件設(shè)計(jì):循環(huán)次數(shù)有限(計(jì)數(shù)控制計(jì)數(shù)控制)和循環(huán)次數(shù)未知和循環(huán)次數(shù)未知(事件控制(事件控制)l 循環(huán)體設(shè)計(jì):循環(huán)體如果包含一條以上語句時(shí)循環(huán)體設(shè)計(jì):循環(huán)體如果包含一條以上語句時(shí), 則應(yīng)該用花則應(yīng)該用花括號(hào)括起括號(hào)括起, 構(gòu)成復(fù)合語句構(gòu)成復(fù)合語句l 在循環(huán)體語句中在循環(huán)體語句中, 一定要一定要有改變循環(huán)條件的語句有改變循環(huán)條件的語句, 使循環(huán)能使循環(huán)能夠終止。否則,將成為死循環(huán)。夠終止。否則,將成為死循環(huán)。6 3.5.13.5.1 while while 語句語句 while語句的一般格式為語句的一般格式為: : while ( 表達(dá)式表達(dá)式 ) 循環(huán)體語句循環(huán)體語句while語句的執(zhí)行流程如圖
4、所示語句的執(zhí)行流程如圖所示: :循環(huán)體循環(huán)體while語句的下一語句語句的下一語句表達(dá)式表達(dá)式0圖圖 while語句執(zhí)行流程示意圖語句執(zhí)行流程示意圖非非07 starti=1;sum=0;in sum=sum+k; i+;stop讀入n讀入k輸出sumNYn例:從鍵盤輸入n(n0)個(gè)數(shù),求其和?n算法重點(diǎn)循環(huán)條件(計(jì)數(shù)控制循環(huán))循環(huán)體構(gòu)造計(jì)數(shù)器(i)和累加器(sum)的概念8 循環(huán)條件循環(huán)體9 n例:從鍵盤連續(xù)輸入字符,直例:從鍵盤連續(xù)輸入字符,直到輸入到輸入“回車回車”符為止,符為止, 統(tǒng)計(jì)輸統(tǒng)計(jì)輸入的字符個(gè)數(shù)入的字符個(gè)數(shù)n算法重點(diǎn)算法重點(diǎn)未知循環(huán)次數(shù)的循環(huán)條件(事件控制循環(huán))getchar
5、()/getch()函數(shù)使用和區(qū)別char c;c=getchar();或 c=getch();c=getch();頭文件是conio.h。而不是stdio.h windows平臺(tái)下ENTER鍵會(huì)產(chǎn)生兩個(gè)轉(zhuǎn)義字符rn,getchar()返回10(即n),getch返回13(r) 10 11 求PI的近似值,見P80-81提問:為什么錯(cuò)?12 求PI的近似值,見P80-8113 3.5.3.5.2 2 do-while do-while 語句語句 n do-while語句格式語句格式: : do 循環(huán)體循環(huán)體 while ( );n do-while語句的執(zhí)行流程如圖所示語句的執(zhí)行流程如圖所示:
6、 :循環(huán)語句體do-while語句的下一語句表達(dá)式0 do-while語句執(zhí)行流程示意圖非014 3.5.3.5.2 2 do-while do-while 語句語句 l do-while語句與語句與while語句的區(qū)別語句的區(qū)別: :do-while語句是在判斷條件是否成立之前語句是在判斷條件是否成立之前, , 先先執(zhí)行循環(huán)體語句一次;執(zhí)行循環(huán)體語句一次;while語句則是先判斷條件是否成立語句則是先判斷條件是否成立, , 如果條如果條件成立才執(zhí)行循環(huán)體件成立才執(zhí)行循環(huán)體; ; l while語句的循環(huán)體可能一次都不執(zhí)行;而語句的循環(huán)體可能一次都不執(zhí)行;而do-while語句的循環(huán)體至少被執(zhí)
7、行一次語句的循環(huán)體至少被執(zhí)行一次, , 這是這是while語句和語句和do-while語句的根本區(qū)別語句的根本區(qū)別15 starti=1;sum=0; sum=sum+k; i+;stop讀入n讀入k輸出sumNYinstarti=1;sum=0;in sum=sum+k; i+;stop讀入n讀入k輸出sumNY例:從鍵盤輸入例:從鍵盤輸入n n(n0n0)個(gè)數(shù),求其和?)個(gè)數(shù),求其和?循環(huán)條件循環(huán)體循環(huán)條件循環(huán)體16 3.4.2 do-while 語句語句17 3.5.3.5.3 3 for for 語句語句 n for 循環(huán)格式循環(huán)格式: : for ( ;) 循環(huán)體語句循環(huán)體語句 n
8、for循環(huán)的執(zhí)行流程如圖所示循環(huán)的執(zhí)行流程如圖所示: :計(jì)算表達(dá)式1循環(huán)語句體計(jì)算表達(dá)式3for語句的下一語句表達(dá)式2018 用用for循環(huán)語句編寫計(jì)算循環(huán)語句編寫計(jì)算100100個(gè)個(gè)6 6相加的程序相加的程序19 3.5.3.5.3 3 for for 語句語句lfor語句的功能可用while語句描述如下:表達(dá)式1; 例如: i=1;while (表達(dá)式2) while(i=50) 語句; sum=sum+i; 表達(dá)式3; i+; lfor語句最簡單的應(yīng)用形式: for (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語句 例如, for (i=1; i=50; i+) sum=sum+i; 20
9、 3.5.3.5.3 3 for for 語句語句1.1.缺省缺省 1的情況的情況; ; int i=1, sum = 0 int i=1, sum = 0 ; for ( for ( ;i = 100 i = 100 ;i +)i +) sum = sum + 6 sum = sum + 6 ;2.2.缺省缺省 2的情況的情況; ; for(i=1,sum=0; ;i+) for(i=1,sum=0; ;i+) sum=sum+6; sum=sum+6;此時(shí)循環(huán)條件為真,相當(dāng)此時(shí)循環(huán)條件為真,相當(dāng)while(1)while(1)3.3.缺省缺省 3的情況的情況; ; int i=1, sum
10、 = 0 int i=1, sum = 0 ; for ( for ( ;i = 100 i 22的整數(shù)的整數(shù)n n,如果除,如果除1 1和和n n外不能被外不能被任何數(shù)整除,則是素?cái)?shù);并規(guī)定任何數(shù)整除,則是素?cái)?shù);并規(guī)定2 2是最小素?cái)?shù)。為了確定是最小素?cái)?shù)。為了確定n n是否含有因子,只需用是否含有因子,只需用2 2到到n(n(也可用也可用2 2至至sqrt(n)sqrt(n)作除數(shù),作除數(shù),如均不能整除如均不能整除n,n,則則n n是素?cái)?shù),否則,是素?cái)?shù),否則,n n不是素?cái)?shù)不是素?cái)?shù)l算法算法(1)(1)輸入輸入n n(2)(2)如果如果n n等于等于2 2,則輸出,則輸出“2 2是一個(gè)素?cái)?shù)是
11、一個(gè)素?cái)?shù)”;否則,如果;否則,如果n2n2則找則找n n是否有因子是否有因子 i i從從2 2開始,用開始,用i i除除n n,若余數(shù)非,若余數(shù)非0 0且且in,in,則用下一個(gè)則用下一個(gè)i i重復(fù)重復(fù)該過程。當(dāng)該過程。當(dāng)余數(shù)為余數(shù)為0 0或或i i大于等于大于等于n n時(shí),結(jié)束找因子的過程時(shí),結(jié)束找因子的過程(3)(3)如果結(jié)束循環(huán)時(shí)余數(shù)為如果結(jié)束循環(huán)時(shí)余數(shù)為0 0,則輸出,則輸出n n“不是一個(gè)素?cái)?shù)不是一個(gè)素?cái)?shù)“,否則,輸出否則,輸出n n“是一個(gè)素?cái)?shù)是一個(gè)素?cái)?shù)”l算法重點(diǎn):循環(huán)條件和程序效率算法重點(diǎn):循環(huán)條件和程序效率22 /妙!妙!妙!妙!23 n輸入一批整數(shù),以輸入一批整數(shù),以0 0
12、為結(jié)束,輸出其中最大的一個(gè)為結(jié)束,輸出其中最大的一個(gè)n分析:從若干數(shù)中找出最大的一個(gè)數(shù),最基本算法是分析:從若干數(shù)中找出最大的一個(gè)數(shù),最基本算法是“打打擂臺(tái)擂臺(tái)”。即兩兩相比,大者留下,小者下臺(tái)。當(dāng)所有數(shù)比。即兩兩相比,大者留下,小者下臺(tái)。當(dāng)所有數(shù)比完時(shí),臺(tái)上留下的數(shù)為最大。程序中用一個(gè)變量完時(shí),臺(tái)上留下的數(shù)為最大。程序中用一個(gè)變量maxmax作為擂作為擂臺(tái),保存每兩個(gè)數(shù)相比中大的一個(gè)數(shù)臺(tái),保存每兩個(gè)數(shù)相比中大的一個(gè)數(shù)n算法:算法: (1) (1)輸入一個(gè)數(shù)輸入一個(gè)數(shù)x x (2) (2)置最大數(shù)置最大數(shù)maxmax初值為初值為x x。 (3) (3)檢查檢查x x是否等于是否等于0 0,如果
13、,如果x x不等于不等于0 0,則,則 (3)-1 (3)-1 輸入下一個(gè)數(shù)輸入下一個(gè)數(shù)x x (3)-2 (3)-2 如果如果maxxmax=1,n為整數(shù)為整數(shù)), S(n)=k(1)+k(2)+k(n) (n=1,n為整數(shù)為整數(shù)),輸入輸入n(1=n=10),輸出相應(yīng)的,輸出相應(yīng)的S(n)。輸入數(shù)據(jù)不需要考慮判錯(cuò)。輸入數(shù)據(jù)不需要考慮判錯(cuò)。測試數(shù)據(jù):測試數(shù)據(jù):n=1答案答案:1n=4答案答案: 33n=10 答案答案: 4037913(3)找出)找出11000中僅僅包含中僅僅包含5個(gè)因子(包括個(gè)因子(包括1和自身)的所和自身)的所有自然數(shù),輸出這些自然數(shù)的所有因子。有自然數(shù),輸出這些自然數(shù)的
14、所有因子。要求:輸出要有提示要求:輸出要有提示44 (4) 有有A, B, C, D, E, F 六個(gè)小朋友,現(xiàn)將三頂相同的白帽六個(gè)小朋友,現(xiàn)將三頂相同的白帽子,三頂相同的黑帽子分給他們,每人一頂。請(qǐng)編寫程序計(jì)子,三頂相同的黑帽子分給他們,每人一頂。請(qǐng)編寫程序計(jì)算不同分配方案的個(gè)數(shù),并打印所有的分配方案。算不同分配方案的個(gè)數(shù),并打印所有的分配方案。(5)從鍵盤輸入一個(gè)五位正整數(shù),首先分離出該正整數(shù))從鍵盤輸入一個(gè)五位正整數(shù),首先分離出該正整數(shù)中的每一位數(shù)字,然后用分離出的每位數(shù)字組成一個(gè)最接中的每一位數(shù)字,然后用分離出的每位數(shù)字組成一個(gè)最接近近40000的數(shù)和一個(gè)最接近的數(shù)和一個(gè)最接近60000的數(shù)。要求檢查輸入數(shù)據(jù)的數(shù)。要求檢查輸入數(shù)據(jù)的合法性。的合法性。參考答案:參考答案:輸入:輸入:1;輸出:錯(cuò)誤提示。輸出:錯(cuò)誤提示。輸入:輸入:100000;輸出:錯(cuò)誤提示。輸出:錯(cuò)誤提示。輸入:輸入:34567;輸入:輸入:37654 5764345 中止死循環(huán)中止死循環(huán)n兒子:兒子:“爸爸,你小時(shí)候,你爸爸打過你嗎?爸爸,你小時(shí)候,你爸爸打過你嗎?”n爸爸:爸爸:“打過。打過。”n兒子:兒子:“那你爸爸小時(shí)候,他爸爸也打過他嗎?那你爸爸小時(shí)候,他爸爸也打過他嗎?”n爸爸:爸爸:“當(dāng)然,也打過。這是死循環(huán)當(dāng)然,也打過。這是死循環(huán).”n兒子:兒子:“爸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書出版代理合同
- 廣州實(shí)習(xí)協(xié)議書范本
- 建設(shè)銀行的建設(shè)項(xiàng)目土方運(yùn)輸合同
- 2024版專業(yè)戰(zhàn)略合作伙伴協(xié)議
- 校園招聘就業(yè)協(xié)議
- 建筑材料批銷合同范本
- 期貨交易保證金轉(zhuǎn)賬協(xié)議
- 2024年餐館合伙協(xié)議書借鑒
- 2024年玩具銷售合同范本
- 星宇網(wǎng)吧轉(zhuǎn)讓協(xié)議書
- 8%水泥土施工方案
- 大型活動(dòng)執(zhí)行手冊(cè)終端篇課件
- 小學(xué)學(xué)生發(fā)展多元化評(píng)價(jià)體系
- 高考高中??蓟瘜W(xué)方程式歸納題
- T-CCIAT 0044-2022 智慧園區(qū)以太全光網(wǎng)絡(luò)建設(shè)技術(shù)規(guī)程
- 人間第一情-完整版PPT
- 高速公路工程施工安全標(biāo)準(zhǔn)化指南(安全技術(shù)分冊(cè))
- 四年級(jí)下冊(cè)語文課件-第四單元 復(fù)習(xí)課件 (共30張PPT)部編版
- 養(yǎng)殖場租賃合同協(xié)議書范本4篇
- 淡藍(lán)插畫風(fēng)檔案管理培訓(xùn)PPT模板
- 青霉素過敏性休克搶救程序圖
評(píng)論
0/150
提交評(píng)論