c語言教學(xué)第8講課件_第1頁
c語言教學(xué)第8講課件_第2頁
c語言教學(xué)第8講課件_第3頁
c語言教學(xué)第8講課件_第4頁
c語言教學(xué)第8講課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八講循環(huán)語句教學(xué)目的與要求:了解循環(huán)作用及實現(xiàn)方法掌握while、do-while、for循環(huán)語句的格式和使用教學(xué)內(nèi)容提要:1、循環(huán)的概述2、while循環(huán)語句3、do-while循環(huán)語句4、for循環(huán)語句教學(xué)重點:while、do-while、for循環(huán)語句的格式和使用教學(xué)難點:while、do-while、for循環(huán)語句的格式和使用教學(xué)進度:P115~P124教學(xué)過程:采用循環(huán)(或稱重復(fù))結(jié)構(gòu)是計算機程序的一個重要特征。計算機運算速度快,最宜于用于重復(fù)性的工作。在循環(huán)算法中,窮舉與迭代是兩類具有代表性的基本應(yīng)用。

迭代與窮舉算法1.迭代

迭代是一個不斷用新值取代變量的舊值,或由舊值遞推出變量的新值的過程。例1:人口增長問題。按年0.2%的增長速度,現(xiàn)有13億人,10年后將有多少人?

設(shè)現(xiàn)人口數(shù)為m=13,則第1年后人口變?yōu)椋?/p>

m=m*(1+0.2%)

即將m的值用m*(1+2%)替代。用循環(huán)結(jié)構(gòu)實現(xiàn),重復(fù)操作的內(nèi)容是不斷從一個變量的舊值出發(fā)計算它的新值。1、循環(huán)的概述迭代與下列因素有關(guān):

·初值;

·迭代公式;

·迭代次數(shù)或迭代終止標志。2.窮舉窮舉是另一種重復(fù)型算法。它的基本思想是,對問題的所有可能狀態(tài)一一測試,直到找到解或?qū)⑷靠赡軤顟B(tài)都測試過為止。循環(huán)控制有兩種辦法:計數(shù)法與標志法。計數(shù)法要先確定循環(huán)次數(shù),然后逐次測試,完成測試次數(shù)后,循環(huán)結(jié)束。標志法是達到某一目標后,使循環(huán)結(jié)束。例3:輸入10個數(shù),將最大的一個數(shù)打印出來。目前還沒有合適的方法來存儲10個數(shù)。為此可以考慮類似打擂臺一樣的一種算法:

S1:輸入1個數(shù),暫時作為擂主——最大數(shù)。

S2:輸入9個數(shù)——窮舉這9個數(shù),每輸入一個,打一次擂臺——把最大數(shù)與剛輸入的數(shù)據(jù)進行比較,把大者作為新擂主——最大數(shù)。

S3:輸出最大數(shù)。真(非零)表達式

循環(huán)體假(零)1)、while語句的形式:

while(表達式)循環(huán)體;

2)、

while語句常稱為“當(dāng)型”循環(huán)語句。2、while循環(huán)語句:例

求∑n用傳統(tǒng)流程圖和N-S結(jié)構(gòu)流程圖表示算法,見圖(a)和圖(b)。100n=1根據(jù)流程圖寫出程序:main(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}3)、說明:先判斷表達式,后執(zhí)行語句。表達式同if語句后的表達式一樣,可以是任何類型的表達式。循環(huán)體多于一句時,用一對{}括起。while循環(huán)結(jié)構(gòu)常用于循環(huán)次數(shù)不固定,根據(jù)是否滿足某個條件決定循環(huán)與否的情況。例:分析下列程序段的循環(huán)次數(shù)i=1;while(i<=100)putchar(‘*’);i++;

#include"stdio.h"voidmain(){charch;intnum=0;ch=getchar();【例2】統(tǒng)計從鍵盤輸入的一行字符的個數(shù)(以回車鍵作為輸入結(jié)束標記)。while(ch!='\n')判斷是否輸入結(jié)束{num++;ch=getchar();}printf("num=%d\n",num);}例4Fibonacci算法C語言的程序?qū)崿F(xiàn)。Fibonacci數(shù)列:1,1,2,3,5,8,13,21,34,…公式:fib1=fib2=1 (1)fibn=fibn-1+fibn-2(n>=3) (2)

/******計算Fibonacci數(shù)******/#include<stdio.h>intmain(void){intfib1=1,fib2=1,fib,i=3;while(i<=12){ fib=fib1+fib2; fib1=fib2;fib2=fib; i++;}printf(“TheFibonaccinumberafter1yeris:%d\n”,fib);return0;}3、do—while循環(huán)語句1)、do--while的形式:

do{循環(huán)體;}while(表達式);2)、do--while語句常稱為“直到型”循環(huán)語句。真(非零)表達式

循環(huán)體假(零)例

用do~while語句求∑n。先畫出流程圖,見圖。100n=1程序如下:main(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}3)、說明:先執(zhí)行循環(huán)語句,后判斷表達式。第一次條件為真時,while,do-while等價;第一次條件為假時,二者不同。【例1】用do-while語句編寫程序統(tǒng)計從鍵盤輸入的一行非空字符的個數(shù)(以回車鍵作為輸入結(jié)束標記)。

#include"stdio.h"voidmain(){charch;intnum=0;ch=getchar();do{if(ch!=‘’)num++;ch=getchar();}while(ch!='\n');printf("num=%d\n",num);}if(ch!=‘\n’){}注意在if、while語句中,表達式后面都沒有分號,而在do-while語句的表達式后面則必須加分號。do-while和while語句相互替換時,要注意修改循環(huán)控制條件。表達式3計算表達式1循環(huán)體判斷表達式2零非零for的下一條語句2、執(zhí)行過程

for(i=1,sum=0;i<=100;i++)sum=sum+i;

例如:它相當(dāng)于以下語句:

i=1;

while(i<=100){sum=sum+i;i++;

}表達式1;while(表達式2)表達式3;(4)可以省略表達式1和表達式3,只有表達式2,如:

i=1;sum=0;for(;i<=100;){sum=sum+i;i++;}i=1;sum=0;while(i<=100)

{sum=sum+i;i++;}相當(dāng)于for語句中表達式省略的形式(3)表達式3也可以省略,但此時保證循環(huán)能正常結(jié)束如:for(sum=0,i=1;i<=100;){sum=sum+i;i++;}while(1)循環(huán)體;即不設(shè)初值,不判斷條件,循環(huán)變量不增值。無終止地執(zhí)行循環(huán)體。(5)三個表達式都可省略,如

for(;;)循環(huán)體;for語句中表達式省略的形式如:sum=0,i=1;for(;;){if(i>100)break;sum=sum+i;i++;}相當(dāng)于(1)給累乘器賦初值,一般為1;(2)用循環(huán)語句實現(xiàn)累乘;for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量改變規(guī)律)(3)循環(huán)體設(shè)計。累乘器當(dāng)前值=累乘器原值*循環(huán)變量當(dāng)前值;例4:求累乘積。如:1×2×3×...×100基本方法:屬于“累乘器”類型問題。累乘器賦初值求n!=1×2×3×…n參考程序:voidmain(){doubles=1;intk

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論