《循環(huán)控制》PPT課件.ppt

上傳人:za****8 文檔編號(hào):15816342 上傳時(shí)間:2020-09-08 格式:PPT 頁(yè)數(shù):42 大?。?46.02KB
收藏 版權(quán)申訴 舉報(bào) 下載
《循環(huán)控制》PPT課件.ppt_第1頁(yè)
第1頁(yè) / 共42頁(yè)
《循環(huán)控制》PPT課件.ppt_第2頁(yè)
第2頁(yè) / 共42頁(yè)
《循環(huán)控制》PPT課件.ppt_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《循環(huán)控制》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《循環(huán)控制》PPT課件.ppt(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第四章 語(yǔ)句和流程控制(2) 循環(huán)控制,計(jì)算機(jī)公共教學(xué)部,,4.2.1 概述 4.2.2 goto語(yǔ)句以及用goto語(yǔ)句構(gòu)成循環(huán) 4.2.3 用while語(yǔ)句實(shí)現(xiàn)循環(huán) 4.2.4 用do-while語(yǔ)句實(shí)現(xiàn)循環(huán) 4.2.5 用for語(yǔ)句實(shí)現(xiàn)循環(huán) 4.2.6 循環(huán)的嵌套 4.2.7 幾種循環(huán)的比較 4.2.8 break語(yǔ)句與continue語(yǔ)句 4.2.9 程序舉例,教學(xué)目標(biāo),【教學(xué)目的與要求】 掌握三種循環(huán)語(yǔ)句的語(yǔ)法規(guī)則和功能,學(xué)會(huì)用循環(huán)方法進(jìn)行簡(jiǎn)單循環(huán)程序設(shè)計(jì),熟悉并掌握常用的幾種抽象循環(huán)的方法,能使用循環(huán)語(yǔ)句編寫(xiě)程序。 【教學(xué)重點(diǎn)與難點(diǎn)】 三種循環(huán)語(yǔ)句,break 與 continue

2、語(yǔ)句的基本作用。,4.2.1 概述,求1100的累計(jì)和。 根據(jù)已有的知識(shí),可以用“1+2++100”來(lái)求,但顯然很繁瑣?,F(xiàn)在換個(gè)思路來(lái)考慮: 首先設(shè)置一個(gè)累計(jì)器sum,其初值為0,利用sum += n來(lái)計(jì)算(n依次取1、2、、100),只要解決以下3個(gè)問(wèn)題即可: (1)將n的初值置為1; (2)每執(zhí)行1次“sum += n”后,n增1; (3)當(dāng)n增到101時(shí),停止計(jì)算。此時(shí),sum的值就是1100的累計(jì)和。,根據(jù)已有的知識(shí),單獨(dú)實(shí)現(xiàn)每一步都不難。但是,由于需要經(jīng)常使用這種重復(fù)計(jì)算結(jié)構(gòu)(稱為循環(huán)結(jié)構(gòu)),C語(yǔ)言提供了3條循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn),以簡(jiǎn)化、并規(guī)范循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。 在語(yǔ)言中,可用以下語(yǔ)

3、句實(shí)現(xiàn)循環(huán): (1)goto語(yǔ)句以及用goto語(yǔ)句構(gòu)成循環(huán) (2)用while語(yǔ)句實(shí)現(xiàn)循環(huán) (3)用do-while語(yǔ)句實(shí)現(xiàn)循環(huán) (4)用for語(yǔ)句實(shí)現(xiàn)循環(huán),goto語(yǔ)句格式:goto 標(biāo)號(hào) 標(biāo)號(hào)的命名遵循標(biāo)識(shí)符命名規(guī)則 功能:使系統(tǒng)轉(zhuǎn)向標(biāo)號(hào)所在的語(yǔ)句行執(zhí)行。,4.2.2 goto語(yǔ)句以及用goto語(yǔ)句構(gòu)成循環(huán),1100求和 用if 和goto語(yǔ)句構(gòu)成循環(huán),#include void main() int i,s=0; i=1; loop: if(i<=100) s+=i; i++; goto loop; printf(%d,s); ,s=0+1 s==1+2=3 s=3+3=6

4、 s=6+4 s=4950+100=5050,注意:結(jié)構(gòu)化程序設(shè)計(jì)方法,主張限制使用goto語(yǔ)句。因?yàn)闉E用goto語(yǔ)句,將會(huì)導(dǎo)致程序結(jié)構(gòu)無(wú)規(guī)律、可讀性差。,while語(yǔ)句 一般形式:,while(表達(dá)式) 循環(huán)體語(yǔ)句;,執(zhí)行流程:,4.2.3 用while語(yǔ)句實(shí)現(xiàn)循環(huán),特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體 說(shuō)明: 循環(huán)體有可能一次也不執(zhí)行 循環(huán)體可為任意類型語(yǔ)句 下列情況,退出while循環(huán) 條件表達(dá)式不成立(為零) 循環(huán)體內(nèi)遇break,goto 無(wú)限循環(huán): while(1) 循環(huán)體;,P114例4.2.2 用while循環(huán)求,/*/* 1100求和 */ #include void

5、main() int i,sum=0; i=1; while(i<=100) sum=sum+i; i++; printf(%d,sum); ,do while語(yǔ)句 一般形式:,do 循環(huán)體語(yǔ)句; while(表達(dá)式);,執(zhí)行流程:,4.2.4 用do-while語(yǔ)句實(shí)現(xiàn)循環(huán),特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式 說(shuō)明: 至少執(zhí)行一次循環(huán)體 dowhile可轉(zhuǎn)化成while結(jié)構(gòu),用dowhile循環(huán)1100求和,#include void main() int i,sum=0; i=1; do sum+=i; i++; while(i<=100); printf(%d,

6、sum); ,,while和do-while比較,/**/ #include void main() int i,sum=0; scanf(%d, ,#include void main() int i,sum=0; scanf(%d, ,復(fù)習(xí): 1.while循環(huán) 2.do while循環(huán),#include stdio.h main() int sum,i; sum=0; i=1; while(i<=100) sum=sum+i; i=i+2; printf(sum=%d,sum); ,例:計(jì)算1到100之內(nèi)的奇數(shù)和,本題的特點(diǎn)是對(duì)于是否要繼續(xù)執(zhí)行循環(huán), 由給出的條件決定的.適合w

7、hile循環(huán). 思考:計(jì)算前20個(gè)奇數(shù)之和, 給出循環(huán)次數(shù)的題目用什么?,while(表達(dá)式) 循環(huán)體語(yǔ)句;,do 循環(huán)體語(yǔ)句; while(表達(dá)式);,一般形式:,for(表達(dá)式1 ;表達(dá)式2 ;表達(dá)式3) 循環(huán)體語(yǔ)句;,執(zhí)行流程:,4.2.5 用for語(yǔ)句實(shí)現(xiàn)循環(huán),先求解表達(dá)式1 求解表達(dá)式2,值為真則執(zhí)行循環(huán)體,然后執(zhí)行第3步;值為假,則結(jié)束循環(huán),轉(zhuǎn)到第5步. 求解表達(dá)式3 轉(zhuǎn)回第2步繼續(xù)執(zhí)行 循環(huán)結(jié)束,執(zhí)行for語(yǔ)句后面的程序.,for語(yǔ)句一般應(yīng)用形式:,for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 循環(huán)體語(yǔ)句;,i=1; while(i<=100) sum=sum+i; i

8、=i+2;,For(i=1;i<=100;i=i+2)sum=sum+i;,解思考題:計(jì)算前20個(gè)奇數(shù)和.,例:#include main( ) int i=0; for(i=0;i<10;i++) putchar(a+i); ,,運(yùn)行結(jié)果:abcdefghij,例:#include main( ) int i=0; for(;i<10;i++) putchar(a+i); ,例:#include main( ) int i=0; for(;i<10;putchar(a+i),i++) ; ,說(shuō)明: for

9、語(yǔ)句中表達(dá)式1, 表達(dá)式2 ,表達(dá)式3 類型任意,都可省略,循環(huán)體也可省略,但分號(hào);不可省 無(wú)限循環(huán): for(;;) for語(yǔ)句可以轉(zhuǎn)換成while結(jié)構(gòu),例2:輸出所有的”水仙花數(shù)”,”水仙花數(shù)指的是一個(gè)3位數(shù),其各位數(shù)字立方和等于該數(shù)本身.,(1)循環(huán)語(yǔ)句的循環(huán)體內(nèi),又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)嵌套的概念,對(duì)所有高級(jí)語(yǔ)言都是一樣的。 (2)for語(yǔ)句和while語(yǔ)句允許嵌套,do-while語(yǔ)句也不例外。,4.2.6 循環(huán)的嵌套,循環(huán)的嵌套 三種循環(huán)可互相嵌套,層數(shù)不限 外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán),但不能相互交叉 嵌套循環(huán)的執(zhí)行流程,1) while()

10、while() ... ,(2) do do while( ); ... while( );,3) while() do while( ); . ,(4) for( ; ;) do while(); while() ... ,嵌套循環(huán)的跳轉(zhuǎn) 禁止: 從外層跳入內(nèi)層 跳入同層的另一循環(huán) 向上跳轉(zhuǎn),,循環(huán)嵌套,輸出九九表,#include void main() int i,j; for(i=1;i<10;i++) printf(%4d,i)

11、; printf(n---------------------------------------n); for(i=1;i<10;i++) for(j=1;j<10;j++) printf(%4dn,i*j); printf(“n”) ,for(i=1;i<10;i++) for(j=1;j<10;j++) printf(%4dn,i*j);,4.2.7 幾種循環(huán)的比較 (1) 四種循環(huán)都可以用來(lái)處理同一問(wèn)題,一般情況下它們可以互相代替。 (2) while和dowhile循環(huán),只在while后面指定循環(huán)條件,在循環(huán)體中應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句(如i++,或i=i+1等)。

12、 for循環(huán)可以在表達(dá)式3中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達(dá)式3中。因此for語(yǔ)句的功能更強(qiáng),凡用while循環(huán)能完成的,用for循環(huán)都能實(shí)現(xiàn)。,(3) 用while和dowhile循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在while和dowhile語(yǔ)句之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。 (4) while循型、dowhile循環(huán)和for循環(huán),可以用break語(yǔ)句跳出循環(huán),用continue語(yǔ)句結(jié)束本次循環(huán)。,,4.2.8 break語(yǔ)句和continue語(yǔ)句 break語(yǔ)句 功能:在循環(huán)語(yǔ)句和switch語(yǔ)句中,終止并跳出循環(huán)體或開(kāi)關(guān)體 說(shuō)明:

13、break只能終止并跳出最近一層的結(jié)構(gòu) break不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其它語(yǔ)句之中,,,例 break舉例:輸出圓面積,面積大于100時(shí)停止,#define PI 3.14159 main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); ,,例 break舉例:小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母,直至輸入 非字母字符,#include main() int i,j; char c; while(1) c=getchar(); if(c=a ,continue

14、語(yǔ)句 功能:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷 僅用于循環(huán)語(yǔ)句中,,例 求輸入的十個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及其平均值,#include main() int i,num=0,a; float sum=0; for(i=0;i<10;i++) scanf(%d, ,4.2.9 程序舉例,,分子:1,-1,1,-1 分母:1,3,5,7,...,/*求PI*/ #include #include main() int s; float n,t,pi; t=1; pi=0; n=1.0; s=1; while((fabs(t))=1e-6) pi=

15、pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi); ,,例2求Fibonacci數(shù)列:1,1,2,3,5,8, 的前40個(gè)數(shù),/*例2求Fibonacci數(shù)列*/ #include main() long int f1,f2; int i; f1=1; f2=1; for(i=1;i<=20;i++) printf(%12ld %12ld ,f1,f2); if(i%2==0) printf(n); f1=f1+f2; f2=f2+f1; ,,例3 判斷m是否素?cái)?shù),#include #include

16、 main() int m,i,k; scanf(%d,,例3 判斷m是否素?cái)?shù)源代碼,例4 求3200以內(nèi)素?cái)?shù),#include “stdio.h“ void main() int ni,nj; for(ni=3;ni=ni) printf(“t%d“,ni); ,,內(nèi)循環(huán),外循環(huán),例5 數(shù)字的倒序輸出,#include “stdio.h“ main() int a,r; scanf(“%d”, ,思考題,1、如何求20!?(20!=1*2*3**20) 2、如何求1!+2!+3!++20! 3、找出1100之間的全部“同構(gòu)數(shù)”,它們出現(xiàn)在它的平方數(shù)的右端。如:6的平方是36、6出現(xiàn)在36的右端,6就是一個(gè)同構(gòu)數(shù)。 4、用窮舉算法解百馬百擔(dān)問(wèn)題(有100匹馬馱100擔(dān)貨,大馬馱3擔(dān),中馬馱2 擔(dān),兩匹小馬馱1擔(dān),問(wèn)有大、中、小馬各多少),

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!