《循環(huán)程序設(shè)計(jì)》PPT課件.ppt_第1頁
《循環(huán)程序設(shè)計(jì)》PPT課件.ppt_第2頁
《循環(huán)程序設(shè)計(jì)》PPT課件.ppt_第3頁
《循環(huán)程序設(shè)計(jì)》PPT課件.ppt_第4頁
《循環(huán)程序設(shè)計(jì)》PPT課件.ppt_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

,正確認(rèn)識(shí)循環(huán)程序的執(zhí)行特點(diǎn),運(yùn)用3種循環(huán)語句進(jìn)行循環(huán)程序設(shè)計(jì),運(yùn)用2個(gè)循環(huán)輔助語句更好地控制程序流程,能力目標(biāo):,任務(wù)一 認(rèn)識(shí)while語句,1初識(shí)while語句,(1)思考:在程序設(shè)計(jì)中,用putchar()一次只能輸出一個(gè)星號(hào)*,那么輸出5個(gè)星號(hào)*、10個(gè)星號(hào)*,甚至更多的星號(hào)*,該如何處理呢?,(2)觀察下面兩個(gè)程序,完成問題。,程序一 main() putchar(*); putchar(*); putchar(*); putchar(*); putchar(*); ,任務(wù)一 認(rèn)識(shí)while語句,程序二 main() int i=1; while(i=5) putchar(*); i+=1; ,上面兩個(gè)程序分別實(shí)現(xiàn)什么功能?,(它們都實(shí)現(xiàn)輸出5個(gè)星號(hào)*),兩個(gè)程序中,哪一個(gè)簡(jiǎn)便?在程序中能否用循環(huán)語句來實(shí)現(xiàn)對(duì)重復(fù)操作的控制?,答:程序二簡(jiǎn)便,在程序中能用循環(huán)語句來實(shí)現(xiàn)對(duì)重復(fù)操作的控制。,任務(wù)一 認(rèn)識(shí)while語句,2學(xué)習(xí)while語句的形式,(1)請(qǐng)觀察下面while語句的形式,完成問題。,(2)試寫出while語句的一般形式。,while(表達(dá)式) 語句,語句一 while(n+0 ,兩條語句的關(guān)鍵字是什么?,關(guān)鍵字后的括號(hào)內(nèi)是什么表達(dá)式?,關(guān)鍵字后的語句部分可以是哪些語句?,while,關(guān)系表達(dá)式、邏輯表達(dá)式,簡(jiǎn)單語句、復(fù)合語句,3學(xué)習(xí)while語句的執(zhí)行過程,(1)請(qǐng)觀察while語句的流程,完成問題。,真,假,請(qǐng)歸納執(zhí)行過程: 計(jì)算 ,如果表達(dá)式為真,進(jìn)入 ,開始一次 循環(huán)周期;否則進(jìn)入,結(jié)束循環(huán)。 執(zhí)行語句。語句執(zhí)行完后就結(jié)束本次循環(huán)周期,重新返回 。 結(jié)束循環(huán),執(zhí)行循環(huán)后面的語句。,表達(dá)式,(2)請(qǐng)記錄該程序的上機(jī)調(diào)試結(jié)果,畫出以下程序的流程圖,并指出循環(huán)條件、循環(huán)體及循環(huán)控制變量的三個(gè)工作。,請(qǐng)記錄上機(jī)調(diào)試結(jié)果:,#include“stdio.h“ main() int I; char ch; ch=# ; I=1; while(I3) printf(“%cn“,ch); I+; ,流程圖:,循環(huán)條件是 循環(huán)體是 循環(huán)控制變量是 ,3個(gè)工作分別 是 、 、 。,I3,printf(“%cn”,ch);,I,I=1,I3,I+,(3)請(qǐng)觀察下面2個(gè)程序段,完成問題。,語句一 I=1; while(I+=10) printf(“hello!n”);,語句二 I=1; while(-I=10) printf(“world!n”);,判斷下面哪一個(gè)程序段是正確的?,循環(huán)控制變量更新的趨勢(shì)是什么?,程序在什么時(shí)候才能判斷循環(huán)是否終止?,(語句一),(讓循環(huán)條件為假),(判斷循環(huán)條件時(shí)),討論,用while語句編程求1+2+10之和。 (同時(shí)畫出該程序的流程圖),程序:,流程圖:,循環(huán)條件 在循環(huán)結(jié)構(gòu)中的表達(dá)式被稱為循環(huán)條件。 循環(huán)體 在每次循環(huán)周期均要執(zhí)行一次的語句,稱為循環(huán)體。它可以是簡(jiǎn)單語句、復(fù)合語句,也可以是空語句。 循環(huán)控制變量 在循環(huán)條件中控制條件真假的變量,稱為循環(huán)控制變量。它通常決定循環(huán)體的執(zhí)行次數(shù)。 正確地寫出一個(gè)while循環(huán)結(jié)構(gòu),對(duì)循環(huán)控制變量做3個(gè)工作:一是給控制變量賦初值;二是寫出正確的循環(huán)條件;三是控制變量的更新。,知識(shí)盤點(diǎn):,任務(wù)二 認(rèn)識(shí)dowhile語句,1學(xué)習(xí)dowhile語句的形式,任務(wù)二 認(rèn)識(shí)dowhile語句,(1)請(qǐng)觀察下面程序中dowhile語句的形式,完成問題。 sum=0; i=1; do sum=sum+i; i=i+1; while(i=10);,該語句的關(guān)鍵字是什么? 語句部分即循環(huán)體部分在哪里? 表達(dá)式即循環(huán)條件部分在哪里?,(do while),(sum=sum+i;i=i+1;),i=10,(2)試寫出dowhile語句的一般形式。,do While(表達(dá)式);,任務(wù)二 認(rèn)識(shí)dowhile語句,2學(xué)習(xí)dowhile語句的執(zhí)行過程,請(qǐng)觀察dowhile語句的流程,完成問題。,真,假,請(qǐng)歸納執(zhí)行過程: 執(zhí)行do下面的 (循環(huán)體),開始一個(gè)循環(huán)周期。 計(jì)算while括號(hào)中的 (循環(huán)條件)。如果表達(dá)式為真, 結(jié)束本次循環(huán),重新返回 ,開始下一個(gè)循環(huán)周期;否則,轉(zhuǎn)。 結(jié)束dowhile循環(huán),流程轉(zhuǎn)到循環(huán)結(jié)構(gòu)外第1條語句。,語句,表達(dá)式,(1)比較下面2個(gè)程序,寫出運(yùn)行結(jié)果。 #include“stdio.h“ #include“stdio.h“ main() main() char ch; char ch; ch=getchar(); ch=getchar(); do while(ch!= *) putchar(ch); putchar(ch); ch=getchar(); ch=getchar(); while(ch!= *); 運(yùn)行結(jié)果 運(yùn)行結(jié)果 若輸入:ABC* 若輸入:ABC* 則輸出: 則輸出: 若輸入:*AB* 若輸入:*AB* 則輸出: 則輸出:,3dowhile語句與while語句的區(qū)別,ABC,*AB,ABC,無結(jié)果,(2)由上述運(yùn)行結(jié)果看出,dowhile語句與while語句的區(qū)別是什么?,答:當(dāng)?shù)诖螆?zhí)行循環(huán)體時(shí),因?yàn)楸磉_(dá)式為“真”,兩種循環(huán)得到的結(jié)果相同;否則,二者結(jié)果就不同。(前提:二者循環(huán)體中的語句相同),(1)觀察下面的程序段,完成問題。 程序段一 程序段二 sum=0; sum=0; I=1; for(I=1;I=10;I+) while(I=10) scanf(“%f“, ,任務(wù)三 認(rèn)識(shí)for語句,1學(xué)習(xí)for語句的形式,程序段一實(shí)現(xiàn)的功能是什么? 程序段一、二所實(shí)現(xiàn)的功能完全一樣,但在形式上有所不 同,請(qǐng)將程序段一中循環(huán)控制變量I的3個(gè)工作在程序段二中找到。 (2)試寫出for語句的一般形式。,答:輸入10個(gè)數(shù),并求這10個(gè)數(shù)的和。,for(表達(dá)式;表達(dá)式;表達(dá)式) 語句,任務(wù)三 認(rèn)識(shí)for語句,真,假,2學(xué)習(xí)for語句的執(zhí)行過程,請(qǐng)觀察for語句的流程,完成問題。,請(qǐng)歸納執(zhí)行過程: 計(jì)算表達(dá)式1。 計(jì)算表達(dá)式2,如果結(jié)果為真轉(zhuǎn) ;如果結(jié)果為假轉(zhuǎn)。 執(zhí)行for下面的語句,執(zhí)行完后轉(zhuǎn) 。 計(jì)算表達(dá)式3,結(jié)束本次循環(huán)周期,轉(zhuǎn)回 ,開始下一次循環(huán)。 結(jié)束循環(huán),執(zhí)行for語句后的第1條語句。,運(yùn)行結(jié)果:,運(yùn)行結(jié)果:,運(yùn)行結(jié)果:,3討論for語句的靈活性,(1)寫出以下程序段的運(yùn)行結(jié)果。,for(I=5;I0;I-) printf(“%d“,I); for(n=2;n18;n=n+3) printf(“%d“,n); for(ch=a;ch=e;ch+) printf(“%3c“,ch);,(2)討論:在for語句的表達(dá)式1、表達(dá)式2、表達(dá)式3中可能會(huì)出現(xiàn)哪幾種情況?,for(I=1,j=5;Ij;I+,j-) printf(“I=%d j=%dn“,I,j); for(n=1;n*n20;n+) printf(“%dn“,n*n);,運(yùn)行結(jié)果:,運(yùn)行結(jié)果:,程序:,流程圖:,4運(yùn)用for語句編程,編程求1210之積。(同時(shí)畫出該程序的流程圖),()請(qǐng)觀察下面兩個(gè)圖,完成問題。,(b)圖,任務(wù)四 認(rèn)識(shí)循環(huán)嵌套,1學(xué)習(xí)循環(huán)嵌套的形式,while() do while() do while(); while();,(2)閱讀信息,完成問題。,信息:語言提供的3種循環(huán)結(jié)構(gòu):whiledowhilefor都可以相互嵌套, 自由組合。 問題:在已有幾種循環(huán)嵌套形式后,補(bǔ)充3種合法的形式。, , for(;) while() ,()請(qǐng)閱讀程序,完成問題。,2觀察二重循環(huán),#include #define R 5 #define C 5 main() int m,n; for(m=1;m=R;m+) /*7行*/ for(n=1;n=C;n+) /*9行*/ printf(“%3d“,m*n); /*10行*/ printf(“n“); /*12行*/ ,程序定義了哪些變量?,程序中采用幾重循環(huán)嵌套?,程序中外層循環(huán)為哪幾行?外層循環(huán)的循環(huán)體中有幾條語句?,程序中內(nèi)層循環(huán)為哪幾行??jī)?nèi)層循環(huán)的循環(huán)體中有幾條語句?,答:兩個(gè)變量,m和n,答:二重循環(huán),答:外層循環(huán)從7行到12行,外層循環(huán)的循環(huán)體中有2條語句。,答:內(nèi)層循環(huán)從9行到10行,內(nèi)層循環(huán)的循環(huán)體中有1條語句。,(2)請(qǐng)觀察循環(huán)嵌套部分的流程,完成問題。,真,假,真,假,for,1,5,6,2 4 6 8 10,3 6 9 12 15,4 8 12 16 20,5 10 15 20 25,完成下表。(該表給出了內(nèi)外層循環(huán)控制變量的變化情況),請(qǐng)思考:為什么會(huì)出現(xiàn)這種結(jié)果?與上例程序有什么區(qū)別?,(3)請(qǐng)閱讀程序,完成問題,并記錄上機(jī)調(diào)試結(jié)果。,#include #define R 5 main() int m,n; for(m=1;m=R;m+) for(n=1;n=m;n+) printf(“%3d“,m*n); printf(“n“); ,1學(xué)習(xí)break語句 (1)請(qǐng)閱讀程序,完成問題。,任務(wù)五 認(rèn)識(shí)循環(huán)輔助語句,#include #define PI 3.14 main() int r; float V,h; printf(“請(qǐng)輸入圓柱體的高:“); scanf(“%f“,r+) 接下頁,該程序for語句部分的循環(huán)體內(nèi)有幾條語句?,任務(wù)五 認(rèn)識(shí)循環(huán)輔助語句,3條語句。,除了當(dāng)r10時(shí),可退出for循環(huán)外,是否有其他的方式退出for循環(huán)?,答:可以通過當(dāng)V100.0時(shí),執(zhí)行break語句退出循環(huán)。,V=PI*r*r*h; if(V100.0) break; printf(“體積等于.2fn“,V); printf(“此時(shí)r=%dn“,r); ,(2)請(qǐng)觀察該程序for語句部分的流程,完成問題。,真,假,假,真,break,從流程上看,循環(huán)一定是執(zhí)行了10次才退出嗎?為什么?,請(qǐng)寫出該程序的預(yù)期結(jié)果。 請(qǐng)輸入圓柱體的高:6,答:不一定,因?yàn)楫?dāng)V100.0時(shí),執(zhí)行break語句退出循環(huán)。,體積等于18.840000 體積等于75.360001 此時(shí)r=3,請(qǐng)記錄上機(jī)調(diào)試結(jié)果:,差異:,(3)請(qǐng)記錄該程序的上機(jī)調(diào)試結(jié)果,并與預(yù)期結(jié)果比較,有差異嗎?,2學(xué)習(xí)continue語句,()請(qǐng)閱讀程序,完成問題,并記錄上機(jī)調(diào)試結(jié)果。,記錄上機(jī)調(diào)試結(jié)果:,該程序for語句部分的循環(huán)體內(nèi)有幾條語句?,答:有2條語句。,#include main() int num; for(num=50;num=100;num+) if(num%7=0) continue; printf(“%dn“,num); ,(2)請(qǐng)觀察該程序for語句部分的流程,完成問題。,真,假,假,真,continue,(3)思考:如果該程序不使用continue語句,要實(shí)現(xiàn)同樣的功能,該如何處理?,從流程上看出,什么情況下不輸出數(shù)據(jù)?而輸出的數(shù)據(jù)是具有什么性質(zhì)的數(shù)據(jù)?,答:當(dāng)數(shù)據(jù)能被7整除時(shí),不輸出。而輸出的數(shù)據(jù)具有不能被7整除的性質(zhì)。,break語句也可以用于循環(huán)結(jié)構(gòu)中,使程序提前跳出循環(huán)體,結(jié)束循環(huán),流程轉(zhuǎn)移到循環(huán)體后面的第1條語句。break語句不適用于除循環(huán)結(jié)構(gòu)和switch結(jié)構(gòu)外的其他地方。,break語句在嵌套循環(huán)里,它只影響包含它的最內(nèi)層循環(huán)。,知識(shí)盤點(diǎn):,continue語句的作用是:使本次循環(huán)體的執(zhí)行提前結(jié)束(即流程跳過循環(huán)體中continue后的所有語句),提前結(jié)束本次循環(huán)周期,然后再根據(jù)循環(huán)條件是否滿足決定是否進(jìn)入下一次循環(huán)周期。,continue語句結(jié)束本次循環(huán)周期,進(jìn)入下一次周期。那么,下一次周期究竟在何處開始呢?對(duì)于while語句和dowhile語句,執(zhí)行了coutinue語句后,它的下一步操作是計(jì)算測(cè)試表達(dá)式即循環(huán)控制條件;對(duì)于for語句,下一步操作是先進(jìn)行表達(dá)式3的計(jì)算即控制變量的更新、調(diào)整,然后再進(jìn)行表達(dá)式2的計(jì)算即循環(huán)控制條件。,知識(shí)盤點(diǎn):,1累加的應(yīng)用 題目:用while語句編程求1+2+3+100的和。,任務(wù)六 循環(huán)的應(yīng)用,(1)分析: 首先定義了2個(gè)變量。sum用來保存和,將sum清成0,避免內(nèi)存中產(chǎn)生隨機(jī)數(shù)偶然存入sum,造成結(jié)果不準(zhǔn)確。 變量i起到了控制循環(huán)次數(shù)的作用,當(dāng)i為1、2、3直到100時(shí),條件為真,加入變量sum中。一旦i為101,條件i=100不成立,結(jié)束循環(huán)。 由此可見,變量i起到了控制循環(huán)次數(shù)的作用,稱為循環(huán)控制變量。,(2)根據(jù)分析,填寫程序。 #include main() int sum,i; sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“1+2+100=%d“,sum); ,任務(wù)六 循環(huán)的應(yīng)用,(3)用for語句編程實(shí)現(xiàn)以上同樣的功能。 程序:,main() int sum,I; sum=0; for(

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論