版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 在解決實(shí)際問(wèn)題的過(guò)程中,常常會(huì)遇到一些需要重復(fù)處理的問(wèn)題。循環(huán)結(jié)構(gòu)可用來(lái)處理需要重復(fù)處理的問(wèn)題,所以,循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu)。 第1頁(yè),共78頁(yè)。4.1 循環(huán)的概念 4.2 語(yǔ)句4.3 循環(huán) 4.4 循環(huán) 4.5 語(yǔ)句和語(yǔ)句4.6 多重循環(huán)4.7 程序舉例 4.8 三種循環(huán)語(yǔ)句的比較 第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 第4章第2頁(yè),共78頁(yè)。4.1 循環(huán)的概念 循環(huán)結(jié)構(gòu),又稱為重復(fù)結(jié)構(gòu),是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)之一,在數(shù)值計(jì)算和很多問(wèn)題的處理中都需要用到循環(huán)控制。例如,用迭代法求方程的根,計(jì)算全班同學(xué)的平均分等。幾乎所有的應(yīng)用程序都包含循環(huán),它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作
2、為各種復(fù)雜結(jié)構(gòu)程序的基本構(gòu)造單元。因此熟練地掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用,是程序設(shè)計(jì)最基本的要求。第3頁(yè),共78頁(yè)。4.1 循環(huán)的概念 例如,計(jì)算1100的累計(jì)和。 根據(jù)已有的知識(shí),可以用1+2+3+100來(lái)計(jì)算,但顯然很繁瑣?,F(xiàn)在換個(gè)思路來(lái)考慮:首先設(shè)置一個(gè)累加器,其初值為0,利用來(lái)計(jì)算(i依次取1、2、100),只要解決以下3個(gè)問(wèn)題即可: 將i的初值置為1; 每執(zhí)行1次后,i值增1,其過(guò)程如下所示: 0; 1; 重復(fù)執(zhí) 行部分 ; 1; 當(dāng)i增到101時(shí),停止計(jì)算。 此時(shí),的值就是1100的累計(jì)和。第4頁(yè),共78頁(yè)。語(yǔ)言提供了3種循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn): (1) ( )循環(huán)語(yǔ)句 (2) (
3、)循環(huán)語(yǔ)句; (3) ( )循環(huán)語(yǔ)句。下面我們將分別介紹這三種循環(huán)語(yǔ)句。4.1 循環(huán)的概念第5頁(yè),共78頁(yè)。4.2 語(yǔ)句第6頁(yè),共78頁(yè)。4.2 語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán),其一般形式為: (循環(huán)條件表達(dá)式) 循環(huán)體語(yǔ)句 在執(zhí)行語(yǔ)句時(shí),先對(duì)循環(huán)條件表達(dá)式進(jìn)行計(jì)算,若其值為非0(真),則反復(fù)執(zhí)行循環(huán)體語(yǔ)句,直到循環(huán)條件表達(dá)式的值為0(假)時(shí),循環(huán)結(jié)束,程序控制轉(zhuǎn)至循環(huán)語(yǔ)句的下一條語(yǔ)句。其執(zhí)行過(guò)程如圖4-1所示。圖4-1 語(yǔ)句的執(zhí)行過(guò)程第7頁(yè),共78頁(yè)。使用語(yǔ)句時(shí),應(yīng)注意以下幾個(gè)問(wèn)題: 循環(huán)體語(yǔ)句可以是一個(gè)空語(yǔ)句、一個(gè)語(yǔ)句或一組語(yǔ)句。當(dāng)循環(huán)體是一組語(yǔ)句時(shí),則必須用花括號(hào)括起來(lái),組成復(fù)合語(yǔ)句。圖4-2
4、 計(jì)算1100累計(jì)和的流程圖和圖描述 4.2 語(yǔ)句第8頁(yè),共78頁(yè)。 () ; /* 定義整型變量 */ 0; /* 將的初值置為0 */ 1; /* 將i的初值置為1 */ (i=100) /* 若i=100則執(zhí)行循環(huán)體 */ ; /* 將i進(jìn)行累加 */ 1; /* i的值加1 */ (n); /* 輸出的值 */程序運(yùn)行結(jié)果:50504.2 語(yǔ)句第9頁(yè),共78頁(yè)。 語(yǔ)句中的循環(huán)條件表達(dá)式可以是任何類(lèi)型的表達(dá)式。 循環(huán)體內(nèi)一定要有使表達(dá)式的值變?yōu)?(假)的操作,否則 循環(huán)將無(wú)限進(jìn)行,即形成死循環(huán)。 語(yǔ)句的特點(diǎn)是“先判斷,后執(zhí)行”,如果循環(huán)條件表達(dá) 式的值一開(kāi)始就為0,則循環(huán)體語(yǔ)句一次也不執(zhí)
5、行。 例如,對(duì)于下面的語(yǔ)句: () ( ); 如果變量i賦值0時(shí),則一次也不執(zhí)行循環(huán)體語(yǔ)句;如果變量 i賦值4時(shí),則其運(yùn)行結(jié)果為: 3210。4.2 語(yǔ)句第10頁(yè),共78頁(yè)。例4.1 利用公式求的近似值,直到最后一項(xiàng)的絕對(duì)值小于 為止。 分析:本題仍為求累加和問(wèn)題,因此,循環(huán)體中有這樣的求累加和表達(dá)式。為公式中的某一項(xiàng),其特點(diǎn)是,分母為奇數(shù),且相鄰項(xiàng)符號(hào)相反,當(dāng) 時(shí),停止求累加和。的近似值可以表示為4。4.2 語(yǔ)句第11頁(yè),共78頁(yè)。(b) 圖描述圖4-3 例4.1的流程圖和圖描述(a) 流程圖描述 4.2 語(yǔ)句第12頁(yè),共78頁(yè)。 () 1; 110; ()=14) /* 當(dāng)滿足條件時(shí)結(jié)束
6、*/ ; /* 計(jì)算通項(xiàng)并進(jìn)行累加 */ 2; /* i值加2得到下一個(gè)奇數(shù) */ ; /* 相鄰項(xiàng)符號(hào)取反 */ ; /* 求公式中的某一項(xiàng) */ 4*; (8.6fn); /* 輸出的值 */程序運(yùn)行結(jié)果:3.1413974.2 語(yǔ)句第13頁(yè),共78頁(yè)。(a) 流程圖描述 (b) 圖描述 例 4.2 從鍵盤(pán)上連續(xù)輸入字符,直到輸入“回車(chē)”符為止,統(tǒng)計(jì) 輸入的字符中數(shù)字字符的個(gè)數(shù)。4.2 語(yǔ)句第14頁(yè),共78頁(yè)。 () ; 0; ( n); ()n) /*按回車(chē)鍵時(shí)結(jié)束*/ (=0=9) /* 只對(duì)數(shù)字字符的個(gè)數(shù)進(jìn)行統(tǒng)計(jì)*/ (); /* 輸出數(shù)字字符 */ 1; /*對(duì)數(shù)字字符的個(gè)數(shù)進(jìn)行累
7、加統(tǒng)計(jì)*/ (n); /* 輸出數(shù)字字符的個(gè)數(shù) */程序運(yùn)行結(jié)果: 5667566744.2 語(yǔ)句第15頁(yè),共78頁(yè)。4.3 循環(huán) 第16頁(yè),共78頁(yè)。4.3 循環(huán) 用來(lái)實(shí)現(xiàn)“直到型”循環(huán),其一般形式為: 循環(huán)體語(yǔ)句 (循環(huán)條件表達(dá)式); 執(zhí)行過(guò)程是,先執(zhí)行循環(huán)體語(yǔ)句,然后對(duì)循環(huán)條件表達(dá)式進(jìn)行計(jì)算,若其值為真(非0),則重復(fù)上述過(guò)程,直到循環(huán)條件表達(dá)式的值為假(0)時(shí),循環(huán)結(jié)束,程序控制轉(zhuǎn)至該結(jié)構(gòu)的下一條語(yǔ)句。其執(zhí)行過(guò)程如圖4-5所示。第17頁(yè),共78頁(yè)。使用語(yǔ)句時(shí),應(yīng)注意以下幾個(gè)問(wèn)題: 當(dāng)循環(huán)體是一組語(yǔ)句時(shí),則必須用花括號(hào)括起來(lái),組 成復(fù)合語(yǔ)句。 循環(huán)體內(nèi)一定要有使表達(dá)式的值變?yōu)?(假)的操
8、作, 否則循環(huán)將無(wú)限進(jìn)行。 循環(huán)是先執(zhí)行,后判斷,因此循環(huán)體至少執(zhí) 行一次。 和都是關(guān)鍵字,配合起來(lái)使用,()后面的 “;”不可缺少。4.3 循環(huán) 第18頁(yè),共78頁(yè)。例4.3 用循環(huán)編寫(xiě)計(jì)算1+2+3+100的程序。(a) 流程圖描述(b) 圖描述4.3 循環(huán) 第19頁(yè),共78頁(yè)。 ( ) 01; /* 開(kāi)始執(zhí)行循環(huán) */ ; /* 計(jì)算累加和 */ ; /* i自加1 */ (i=100); /* 如果i=100,則循環(huán)繼續(xù)執(zhí)行 */ (n); /* 輸出累加和 */程序運(yùn)行結(jié)果:5050例4.3 用循環(huán)編寫(xiě)計(jì)算1+2+3+100的程序。4.3 循環(huán) 第20頁(yè),共78頁(yè)。例4.4 輸入若干
9、名學(xué)生的某門(mén)課程的成績(jī),以負(fù)數(shù)作為結(jié)束輸入的標(biāo)志,計(jì)算該門(mén)課程的平均成績(jī)。 首先輸入一個(gè)成績(jī),若輸入負(fù)數(shù),直接結(jié)束;否則使用循環(huán)結(jié)構(gòu)計(jì)算總成績(jī),同時(shí)統(tǒng)計(jì)學(xué)生人數(shù)1,最后計(jì)算平均成績(jī)。4.3 循環(huán) 第21頁(yè),共78頁(yè)。 () 0; 0; ( :n); (); (=0); /* 若輸入負(fù)數(shù),則結(jié)束循環(huán) */ ; /* 計(jì)算平均成績(jī) */ (6.2fn); /* 輸出平均成績(jī) */ 程序運(yùn)行結(jié)果: :8067-173.504.3 循環(huán) 第22頁(yè),共78頁(yè)。4.4 循環(huán) C 語(yǔ)言的 循環(huán)使用最為靈活,功能很強(qiáng)。不僅可以用于計(jì)數(shù)型循環(huán),而且可以用于條件型循環(huán)。完全可以代替 和 循環(huán)。第23頁(yè),共78頁(yè)。
10、4.4 循環(huán) 循環(huán)語(yǔ)句的一般形式為: (表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體語(yǔ)句 其中,是C語(yǔ)言的關(guān)鍵字,其后圓括號(hào)通常有3個(gè)表達(dá)式。表達(dá)式之間用分號(hào)隔開(kāi),表達(dá)式可以是C語(yǔ)言中任何合法的表達(dá)式。表達(dá)式1給循環(huán)變量賦初值;表達(dá)式2是循環(huán)條件;表達(dá)式3修改循環(huán)變量值。后面的語(yǔ)句為循環(huán)體。循環(huán)體多于一條語(yǔ)句時(shí),要用復(fù)合語(yǔ)句表示。 第24頁(yè),共78頁(yè)。 循環(huán)語(yǔ)句的作用: 首先求解表達(dá)式1的值,然后求解表達(dá)式2的值,若表達(dá)式的值非0(真)時(shí),就執(zhí)行循環(huán)體,執(zhí)行一次循環(huán)體后求解表達(dá)式3的值,再求解表達(dá)式2的值,若表達(dá)式2仍不為0再執(zhí)行循環(huán)體,再求解表達(dá)式3的值。如此反復(fù)直到表達(dá)式2的值為0時(shí),整個(gè)循環(huán)結(jié)
11、束。其執(zhí)行過(guò)程如圖所示。4.4 循環(huán) 第25頁(yè),共78頁(yè)。 語(yǔ)句最簡(jiǎn)單的應(yīng)用形式,也就是最易理解的形式: (循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 循環(huán)體語(yǔ)句 4.4 循環(huán) 第26頁(yè),共78頁(yè)。表達(dá)式2?執(zhí)行語(yǔ)句成立不成立執(zhí)行for循環(huán)之后的語(yǔ)句執(zhí)行表達(dá)式3執(zhí)行表達(dá)式1循環(huán)初始條件循環(huán)控制條件循環(huán)體語(yǔ)句等價(jià)于下列語(yǔ)句:表達(dá)式1; (表達(dá)式2) 語(yǔ)句; 表達(dá)式3;(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句第27頁(yè),共78頁(yè)。例4.5 用循環(huán)編寫(xiě)計(jì)算1+2+3+100的程序。4.4 循環(huán) 第28頁(yè),共78頁(yè)。 () 0; /* 定義整型變量并對(duì)賦初值 */ (1=100) ; /* 通過(guò)循環(huán)對(duì)i進(jìn)行
12、累加 */ (“n”); /* 輸出累加和 */4.4 循環(huán) 第29頁(yè),共78頁(yè)。 使用 循環(huán)時(shí), 語(yǔ)句中的表達(dá)式可以部分或全部省略,但兩個(gè)“;”不可省略。 省略表達(dá)式1,這時(shí)沒(méi)有了給循環(huán)變量賦初值的操作,則應(yīng) 該在語(yǔ)句之前給循環(huán)變量賦初值。 例如: 1; /* 對(duì)循環(huán)變量i賦初值 */ ( =100) /*省略了表達(dá)式1 */ ; 省略表達(dá)式2,相當(dāng)于缺少條件判斷,循環(huán)將無(wú)限進(jìn)行,因 此如果缺少表達(dá)式2,可以認(rèn)為表達(dá)式2始終為真。4.4 循環(huán) 第30頁(yè),共78頁(yè)。 省略表達(dá)式3,則可以把循環(huán)變量的修改部分放到循環(huán)體 中進(jìn)行。 例如: (1=100; ) /* 省略了表達(dá)式3 */ ; ; /
13、* 在循環(huán)體內(nèi)改變循環(huán)變量i的值 */ 省略表達(dá)式1和表達(dá)式3,相當(dāng)于在循環(huán)中只有表達(dá)式2, 即只給出循環(huán)結(jié)束的條件。這時(shí)可以采用上述和中的 方法,保證循環(huán)正常結(jié)束。 三個(gè)表達(dá)式全部省略,( ; ; )相當(dāng)于(1)。4.4 循環(huán) 第31頁(yè),共78頁(yè)。例4.6 用循環(huán)編寫(xiě)計(jì)算n!的程序。 由于是個(gè)連乘的重復(fù)過(guò)程,每次循環(huán)完成一次乘法,共循環(huán)次。在前面我們對(duì)計(jì)算累加和采用了“第i項(xiàng)”的循環(huán)算式,類(lèi)似對(duì)于連乘可以采用“*第i項(xiàng)”的循環(huán)算式,其中第i項(xiàng)就是循環(huán)變量i。4.4 循環(huán) 第32頁(yè),共78頁(yè)。 () 1; /* 定義整型變量,并對(duì)階乘t賦初值1 */ ( n:); /* 輸出提示信息 */ (
14、); /* 從鍵盤(pán)輸入n的值 */ (1) *i; /* 循環(huán)重復(fù)n次,計(jì)算n! */ (n); /* 輸出n的階乘 */程序運(yùn)行結(jié)果: n:51204.4 循環(huán) 例4.7第33頁(yè),共78頁(yè)。4.4 循環(huán) 第34頁(yè),共78頁(yè)。 () i; ; (); ; /* 將輸入的第一個(gè)學(xué)生的成績(jī)賦給 */ ; /* 將輸入的第一個(gè)學(xué)生的成績(jī)賦給 */ (2) /*輸入的成績(jī)大于, 將輸入的成績(jī)值賦給*/ ; () /* 輸入的成績(jī)小于,則將輸入的成績(jī)值賦給 */ ; (6.2f 6.2fn); 程序運(yùn)行結(jié)果:75 89 66 48 98 100 79 85 90 68100.00 48.004.4 循環(huán)
15、 第35頁(yè),共78頁(yè)。4.5 語(yǔ)句和語(yǔ)句 為了使循環(huán)控制更加靈活,C 語(yǔ)言允許在特定條件成立時(shí),使用 語(yǔ)句強(qiáng)行結(jié)束循環(huán),或使用 語(yǔ)句跳過(guò)循環(huán)體其余語(yǔ)句,轉(zhuǎn)向循環(huán)條件的判定語(yǔ)句。 第36頁(yè),共78頁(yè)。4.5 語(yǔ)句和語(yǔ)句 4.5.1 語(yǔ)句 語(yǔ)句的一般形式為: ; 語(yǔ)句有兩個(gè)作用:用于 語(yǔ)句時(shí),退出 語(yǔ)句,程序轉(zhuǎn)至 語(yǔ)句下面的語(yǔ)句;用于循環(huán)語(yǔ)句時(shí),退出包含它的循環(huán)體,程序轉(zhuǎn)至循環(huán)體下面的語(yǔ)句。第37頁(yè),共78頁(yè)。例4.8 找出在100以內(nèi)的自然數(shù)中,能被9整除的第一個(gè)數(shù)。4.5 語(yǔ)句和語(yǔ)句 第38頁(yè),共78頁(yè)。 () ; ( n:); (); (=100) (90) /* 判別i能否被9整除 */
16、( .n); /*i能被9整除,則輸出i的值*/ ; /* 提前退出循環(huán) */ 程序運(yùn)行結(jié)果: n:1 9. n:65 72.4.5 語(yǔ)句和語(yǔ)句 第39頁(yè),共78頁(yè)。4.5.2 語(yǔ)句 語(yǔ)句的一般形式為: ; 語(yǔ)句作用是:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判斷。在和語(yǔ)句中,語(yǔ)句把程序控制轉(zhuǎn)到后面的表達(dá)式處,在語(yǔ)句中,語(yǔ)句把程序控制轉(zhuǎn)到表達(dá)式3處。 4.5 語(yǔ)句和語(yǔ)句 第40頁(yè),共78頁(yè)。例4.9 找出在100以內(nèi)的自然數(shù)中,能被9整除的所有數(shù)。4.5 語(yǔ)句和語(yǔ)句 第41頁(yè),共78頁(yè)。 () ; /* 定義整型變量 */ ( n:); /* 輸出提示信息 */
17、(); /* 從鍵盤(pán)輸入n的值 */ ( :); (=100) (90) /* 判別i能否被9整除 */ (%4d); /* i能被9整除,則輸出i的值 */ ; /* 結(jié)束本次循環(huán), 轉(zhuǎn)至處 */ 程序運(yùn)行結(jié)果: n:65 :728190994.5 語(yǔ)句和語(yǔ)句 第42頁(yè),共78頁(yè)。例4.10 分析下面程序的執(zhí)行結(jié)果。 () 1; (15) /* 若b10,則結(jié)束整個(gè)循環(huán) */ ; (21) /* 若2=1,則3并結(jié)束本次循環(huán) */ 3; ; /* 轉(zhuǎn)至處 */ ; 程序運(yùn)行結(jié)果:1, 12, 43, 34, 64.5 語(yǔ)句和語(yǔ)句 第43頁(yè),共78頁(yè)。注意: 語(yǔ)句和 語(yǔ)句的區(qū)別: 語(yǔ)句只結(jié)束本
18、次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行; 語(yǔ)句則是結(jié)束循環(huán),不再進(jìn)行條件判斷。 4.5 語(yǔ)句和語(yǔ)句 第44頁(yè),共78頁(yè)。4.6 多重循環(huán) 一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。、 和三種循環(huán)語(yǔ)句可以互相嵌套,內(nèi)嵌的循環(huán)體內(nèi)還可以嵌套循環(huán),這就是多重循環(huán)。第45頁(yè),共78頁(yè)。4.6 多重循環(huán)例4.11 以下面形式輸出九九乘法表。11= 121= 2 22= 431= 3 32= 6 33= 941= 4 42= 8 43=12 44=1651= 5 52=10 53=15 55=2571= 7 72=14 73=21 77=4981= 8 82=16 83=24 88=6491= 9
19、 92=18 93=27 99=81第46頁(yè),共78頁(yè)。分析:求積可以用兩層循環(huán)結(jié)構(gòu)實(shí)現(xiàn): (1=9) /* i表示被乘數(shù) */ (1) /* j表示乘數(shù) */ *j; 第一個(gè)語(yǔ)句,稱為外循環(huán),i表示被乘數(shù)。第二個(gè)語(yǔ)句,稱為內(nèi)循環(huán),j表示乘數(shù)。嵌套重復(fù)循環(huán)結(jié)構(gòu)總是先完整地執(zhí)行內(nèi)循環(huán)一次,外循環(huán)再執(zhí)行一次。4.6 多重循環(huán)第47頁(yè),共78頁(yè)。據(jù)上述分析,算法可以用如圖所示的流程圖和圖描述。4.6 多重循環(huán)第48頁(yè),共78頁(yè)。 () ; /* 定義整型變量 */ (1=9) /* 外循環(huán)用于控制行數(shù) */ (1) /* 內(nèi)循環(huán)用于控制列數(shù) */ *j; /* 計(jì)算i*j,并賦值給變量t */ (%
20、3d*2d); /* 輸出t,即i*j的值*/ (n); /* 輸出1行后換行 */ 4.6 多重循環(huán)第49頁(yè),共78頁(yè)。例4.12 用嵌套循環(huán)計(jì)算 的值。4.6 多重循環(huán)第50頁(yè),共78頁(yè)。 () ; 0; ( n:); (); (1) /* 外層循環(huán)重復(fù)n次,求累加和*/ 1; /* 置t的初值為1,以保證每次求階乘都從1開(kāi)始連乘 */ (1) /* 內(nèi)層循環(huán)重復(fù)i次,計(jì)算! */ *j; ; /* 把i!累加到中 */ (n); 程序運(yùn)行結(jié)果: n:4334.6 多重循環(huán)第51頁(yè),共78頁(yè)。例4.13 輸出一個(gè)任意行的等腰三角形圖形。 * * * *分析: 把三角形頂點(diǎn)放在屏幕第40列的
21、位置,每行的輸出開(kāi)始位置比上一行提前一列,每行輸出星號(hào)的個(gè)數(shù)是行數(shù)的2倍減去1。輸入n的值來(lái)確定所需要的行數(shù)。程序的外循環(huán)控制輸出的行數(shù),內(nèi)循環(huán)是兩個(gè)并列的循環(huán),前面一個(gè)循環(huán)輸出每行前面的空格,后面一個(gè)循環(huán)輸出該行的星號(hào),星號(hào)輸出結(jié)束后換行,接著輸出下一行。4.6 多重循環(huán)第52頁(yè),共78頁(yè)。 () ; ( ); (); /*從鍵盤(pán)上輸入等腰三角形所占的行數(shù) */ (1; k; ) /* 此循環(huán)用于控制行數(shù) */ (140) /* 此循環(huán)用于控制星號(hào)前的空格 */ ( ); (1=2*1) /*此循環(huán)用于控制一行內(nèi)打印星號(hào)的個(gè)數(shù) */ (*); (n); /* 輸出一行后換行 */ * * *
22、 *4.6 多重循環(huán)第53頁(yè),共78頁(yè)。4.7 程 序 舉 例第54頁(yè),共78頁(yè)。4.7 程序舉例 例4.14 編寫(xiě)程序求斐波納契()數(shù)列的前20項(xiàng),要求每行輸出5個(gè)斐波納契數(shù)。 斐波納契數(shù)列源自一個(gè)有趣的問(wèn)題:一對(duì)小兔,一個(gè)月后長(zhǎng)成中兔,第3個(gè)月長(zhǎng)成大兔,長(zhǎng)成大兔以后每個(gè)月生一對(duì)小兔。問(wèn)第20個(gè)月有多少對(duì)兔子? 斐波納契數(shù)列的規(guī)律是:每個(gè)數(shù)等于前兩個(gè)數(shù)之和。其可以用數(shù)學(xué)上的遞推公式來(lái)表示:第55頁(yè),共78頁(yè)。4.7 程序舉例第56頁(yè),共78頁(yè)。 () f123; k; f1=12=1; /* 斐波納契數(shù)列的頭兩個(gè)數(shù) */ (%101012); /* 輸出斐波納契數(shù)列的頭兩個(gè)數(shù) */ (3=2
23、0) /* 循環(huán)18次求斐波納契數(shù)列的后18項(xiàng) */ f312; /* 新的斐波納契數(shù)的一個(gè)數(shù)等于前兩個(gè)數(shù)之和 */ (%103); f12; /* 迭代,用新的數(shù)覆蓋舊的數(shù) */ f23; (50) (n); /* 每輸出5個(gè)斐波納契數(shù)換行 */ 4.7 程序舉例第57頁(yè),共78頁(yè)。程序運(yùn)行結(jié)果:1 1 2 3 58 13 21 34 5589 144 233 377 610987 1597 2584 4181 67654.7 程序舉例第58頁(yè),共78頁(yè)。例4.15 利用下面級(jí)數(shù)求正弦函數(shù)的值(要求算到最后一項(xiàng)的絕對(duì)值小于 為止)。 這是一個(gè)多項(xiàng)式累加和,每一項(xiàng)的符號(hào)和分子、分母都是有規(guī)律性
24、地變化:符號(hào)依此作正負(fù)變化;分子是x的奇數(shù)次冪;分母則是從1開(kāi)始的奇數(shù)階乘。可以用循環(huán)結(jié)構(gòu)實(shí)現(xiàn),當(dāng)循環(huán)計(jì)算到某一項(xiàng) 時(shí)循環(huán)結(jié)束,輸出 (x) 的值。 4.7 程序舉例第59頁(yè),共78頁(yè)。4.7 程序舉例第60頁(yè),共78頁(yè)。 3.14159 () 1; ; 1; ( ); /* 輸出提示信息 */ (1); /* 從鍵盤(pán)輸入角度x1的值 */ 1*180; /* 將角度x1換算成弧度 */ ; /* 把級(jí)數(shù)的第一項(xiàng)x作為累加和的初值 */ ; /* 將x賦值給 */ 4.7 程序舉例第61頁(yè),共78頁(yè)。 (3()=162) /*當(dāng)前項(xiàng)= , 執(zhí)行循環(huán) */ 1; 1; (1) *j; /* 通過(guò)
25、循環(huán)計(jì)算當(dāng)前項(xiàng)的階乘t */ *x; /* 通過(guò)循環(huán)計(jì)算當(dāng)前項(xiàng)的分子 */ ; /* 將值的符號(hào)取反 */ *; /* 計(jì)算新的當(dāng)前項(xiàng)值 */ ; /* 對(duì)進(jìn)行累加 */ (%.2f)n1);程序運(yùn)行結(jié)果: 2(2.0)=0.0348994.7 程序舉例第62頁(yè),共78頁(yè)。例4.16 從鍵盤(pán)上輸入一個(gè)大于2的整數(shù),判斷m是否為素?cái)?shù)。 所謂素?cái)?shù)是指除了1和它本身以外,再不能被任何整數(shù)整除的數(shù)。根據(jù)這一定義,判斷一個(gè)整數(shù)是否素?cái)?shù),只需把被2到m -1之間的每一個(gè)整數(shù)去除,如果都不能被整除,則m就是一個(gè)素?cái)?shù)。 例如:判斷19是否素?cái)?shù),將19被2,3,18除,都不能整除19,則19就是一個(gè)素?cái)?shù)。 實(shí)際
26、上,除數(shù)只要為2 的全部整數(shù)即可。讓m被2除,如果m能被2之中任何一個(gè)整數(shù)整除,則說(shuō)明m不是素?cái)?shù),否則m一定是素?cái)?shù)。 4.7 程序舉例第63頁(yè),共78頁(yè)。4.7 程序舉例第64頁(yè),共78頁(yè)。 () ; 1; /* 將素?cái)?shù)標(biāo)志設(shè)置為1 */ ( a :); /* 輸出提示信息 */ (); /* 從鍵盤(pán)輸入變量m的值 */ (m=2); /* 若m=2,則結(jié)束循環(huán) */ ()(m); /* 將(m)取整后賦值給變量k */ (2) (0) /*若m不是素?cái)?shù),則將素?cái)?shù)標(biāo)志置為0并結(jié)束循環(huán)*/ 0; ; () /* 若素?cái)?shù)標(biāo)志1,則輸出該數(shù)是素?cái)?shù) */ ( a .n); /* 若素?cái)?shù)標(biāo)志0,則輸出該
27、數(shù)不是素?cái)?shù) */ ( a .n );4.7 程序舉例第65頁(yè),共78頁(yè)。程序運(yùn)行結(jié)果: a :3535 a . a :1919 a .4.7 程序舉例第66頁(yè),共78頁(yè)。 例4.17 把一元錢(qián)換成5分,2分,1分的零錢(qián),統(tǒng)計(jì)共有多少種換法。 用a、b、c分別表示換的5分、2分、1分的張數(shù),則a、b、c的值應(yīng)該滿足:5*2*100。4.7 程序舉例第67頁(yè),共78頁(yè)。 () 0; (0=20) /* 本循環(huán)表示5分的有多少種換法 */ (0=50) /* 本循環(huán)表示2分的有多少種換法 */ (0=100) /* 本循環(huán)表示1分的有多少種換法 */ (5*2*100) ; /* 經(jīng)過(guò)三重循環(huán)后,統(tǒng)
28、計(jì)出有多少種換法 */ (n); /* 輸出結(jié)果 */程序運(yùn)行結(jié)果:5414.7 程序舉例第68頁(yè),共78頁(yè)。例4.18 計(jì)算用戶輸入的兩個(gè)正整數(shù)之間的所有整數(shù)中0,1,2,9數(shù)碼的個(gè)數(shù)。例如,101104之間總共包含四個(gè)整數(shù)101,102,103,104,其中0的個(gè)數(shù)為4,1的個(gè)數(shù)為5,2、3、4的個(gè)數(shù)為1,其余數(shù)碼沒(méi)有出現(xiàn)都為0。 要計(jì)算某整數(shù)中包含的各個(gè)數(shù)碼的個(gè)數(shù),必須對(duì)該整數(shù)進(jìn)行分解,求得所包含的各個(gè)數(shù)碼,其方法可以通過(guò)每次除以10取余數(shù)得到,然后再對(duì)商進(jìn)行同樣的處理,直到商為0時(shí)為止。對(duì)所得到的數(shù)碼進(jìn)行計(jì)數(shù),可采用語(yǔ)句來(lái)實(shí)現(xiàn)。4.7 程序舉例第69頁(yè),共78頁(yè)。 () 12; 0=01=02=03=04=0; 5=06=07=08=09=0; /* 循環(huán)用于從鍵盤(pán)上輸入兩個(gè)正整數(shù) */ ( :); ( 12); (1022); /*若10或22,則退出循環(huán)*/ (12) /*循環(huán)用于控制整數(shù)在12之間 */ ; 10; /* s對(duì)10取余數(shù)后賦值給r */4.7 程序舉例第70頁(yè),共78頁(yè)。 (r) /* 用r匹配后的語(yǔ)句 */ 0: 0; ; 1: 1; ; 2: 2; ; 3: 3; ; 4: 4; ; 5: 5; ; 6: 6; ; 7: 7; ; 8: 8; ; 9: 9; ; 1
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 閉合復(fù)位聯(lián)合髓內(nèi)釘固定治療股骨干骨折的效果觀察
- 平安圣誕節(jié)主持開(kāi)場(chǎng)白范文(10篇)
- 科創(chuàng)孵化器項(xiàng)目投資計(jì)劃書(shū)
- 二零二五版?zhèn)€人借款借條制作與信用評(píng)價(jià)協(xié)議4篇
- 二零二五年度創(chuàng)新型股東協(xié)議書(shū)范本(科技企業(yè))2篇
- 二零二五年度個(gè)人汽車(chē)貨運(yùn)時(shí)效賠償合同4篇
- 物業(yè)夜間養(yǎng)護(hù)方案
- 油田管線敷設(shè)施工方案
- 綠化砼護(hù)坡施工方案
- 預(yù)制混凝土承插管施工方案
- 2025-2030年中國(guó)配電變壓器市場(chǎng)未來(lái)發(fā)展趨勢(shì)及前景調(diào)研分析報(bào)告
- 24年追覓在線測(cè)評(píng)28題及答案
- 房地產(chǎn)工程管理 -中建八局機(jī)電工程質(zhì)量通病治理辦法
- GB/T 2518-2019連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- GB/T 14436-1993工業(yè)產(chǎn)品保證文件總則
- 企業(yè)合規(guī)管理-課件
- 火電廠安全工作規(guī)程
- 湖南省鄉(xiāng)鎮(zhèn)衛(wèi)生院街道社區(qū)衛(wèi)生服務(wù)中心地址醫(yī)療機(jī)構(gòu)名單目錄
- 小學(xué)語(yǔ)文人教四年級(jí)上冊(cè)(統(tǒng)編)第七單元-把握文章主要內(nèi)容教學(xué)設(shè)計(jì)2
- 二年級(jí)下冊(cè)道德與法治我們有新玩法 教學(xué)設(shè)計(jì)
- 特發(fā)性肺纖維化IPF
評(píng)論
0/150
提交評(píng)論