C高級(jí)語(yǔ)言程序設(shè)計(jì)第三章實(shí)用教案_第1頁(yè)
C高級(jí)語(yǔ)言程序設(shè)計(jì)第三章實(shí)用教案_第2頁(yè)
C高級(jí)語(yǔ)言程序設(shè)計(jì)第三章實(shí)用教案_第3頁(yè)
C高級(jí)語(yǔ)言程序設(shè)計(jì)第三章實(shí)用教案_第4頁(yè)
C高級(jí)語(yǔ)言程序設(shè)計(jì)第三章實(shí)用教案_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2022-5-19-1-第第3 3章章 過(guò)程過(guò)程(guchng)(guchng)化語(yǔ)句化語(yǔ)句3.1 算法的基本控制結(jié)構(gòu)3.2 if選擇(xunz)語(yǔ)句3.3 switch選擇(xunz)語(yǔ)句3.4 循環(huán)語(yǔ)句3.5 循環(huán)嵌套3.6 應(yīng)用舉例第1頁(yè)/共68頁(yè)第一頁(yè),共69頁(yè)。2022-5-19-2-3.1 3.1 算法算法(sun f)(sun f)的基本控的基本控制結(jié)構(gòu)制結(jié)構(gòu)第2頁(yè)/共68頁(yè)第二頁(yè),共69頁(yè)。2022-5-19-3-3.1 3.1 算法算法(sun f)(sun f)的基本控制結(jié)構(gòu)的基本控制結(jié)構(gòu) 算法 1、計(jì)算機(jī)執(zhí)行的操作 2、這些操作的順序 偽碼 采用類(lèi)似(li s)計(jì)算機(jī)語(yǔ)言

2、的分句格式,以自然語(yǔ)言描述算法。 第3頁(yè)/共68頁(yè)第三頁(yè),共69頁(yè)。2022-5-19-4-3.1 3.1 算法算法(sun f)(sun f)的基本控制結(jié)構(gòu)的基本控制結(jié)構(gòu) 流程圖 開(kāi)始(kish)/結(jié)束 執(zhí)行 判斷 聯(lián)系第4頁(yè)/共68頁(yè)第四頁(yè),共69頁(yè)。2022-5-19-5-3.1 3.1 算法算法(sun f)(sun f)的基本控制結(jié)構(gòu)的基本控制結(jié)構(gòu) 程序的三種基本控制結(jié)構(gòu)( jigu) (1)順序結(jié)構(gòu)( jigu) (2)選擇結(jié)構(gòu)( jigu) (3)循環(huán)結(jié)構(gòu)( jigu)第5頁(yè)/共68頁(yè)第五頁(yè),共69頁(yè)。2022-5-19-6-3.1 3.1 算法算法(sun f)(sun f)的

3、基本控制結(jié)構(gòu)的基本控制結(jié)構(gòu) 流程控制(kngzh)語(yǔ)句 選擇語(yǔ)句:if.else、switch 循環(huán)語(yǔ)句:while、for 、do.while 轉(zhuǎn)向語(yǔ)句:break、continue第6頁(yè)/共68頁(yè)第六頁(yè),共69頁(yè)。2022-5-19-7-3.1 3.1 算法算法(sun f)(sun f)的基本控制結(jié)構(gòu)的基本控制結(jié)構(gòu) 算法(sun f)及其表示 偽代碼表示 類(lèi)似于計(jì)算機(jī)語(yǔ)言的分句格式,以少量關(guān)鍵詞和自然語(yǔ)言形式描述 流程圖表示 以流程圖符號(hào)表示程序的執(zhí)行流程第7頁(yè)/共68頁(yè)第七頁(yè),共69頁(yè)。2022-5-19-8-歐幾里得算法歐幾里得算法(sun f)描述舉例描述舉例輾轉(zhuǎn)(zhnzhun)

4、相除法求兩個(gè)自然數(shù)m和n的最大公約數(shù),假定mn 偽代碼描述: 流程圖描述:1. input m,n2. r=m%n;3. while (r!=0) 3.1 m=n; 3.2 n=r; 3.3 r=m%n;4. output n;第8頁(yè)/共68頁(yè)第八頁(yè),共69頁(yè)。2022-5-19-9-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)句語(yǔ)句第9頁(yè)/共68頁(yè)第九頁(yè),共69頁(yè)。2022-5-19-10-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)句語(yǔ)句 if_else 1、沒(méi)有else分支(fnzh) 2、雙分支(fnzh) 3、多分支(fnzh) 4、if 語(yǔ)句的嵌套第10

5、頁(yè)/共68頁(yè)第十頁(yè),共69頁(yè)。2022-5-19-11-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)句語(yǔ)句 1、沒(méi)有else分支 例如:比較x和y的大小(dxio),如果x大則輸出x的值if (表達(dá)式) 語(yǔ)句(yj);if ( xy ) coutxy ) coutxendl;else coutyendl;第12頁(yè)/共68頁(yè)第十二頁(yè),共69頁(yè)。2022-5-19-13-例子例子(l zi) 任意輸入一個(gè)(y )4位整數(shù)的年份,判斷該年是否是潤(rùn)年? 是指年份(ninfn)能被4整除的那些年,但不包括能被100整除而不能被400整除的年第13頁(yè)/共68頁(yè)第十三頁(yè),共69頁(yè)。2022-5

6、-19-14-#include using namespace std;void main() int year; cinyear; if (year % 4=0) & !(year %100 = 0) & (year % 400!=0) cout潤(rùn)年endl; else cout不是(b shi)潤(rùn)年endl;第14頁(yè)/共68頁(yè)第十四頁(yè),共69頁(yè)。2022-5-19-15-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)句語(yǔ)句 3、多分支(fnzh)if (表達(dá)式1) 語(yǔ)句(yj)1; else if (表達(dá)式2) 語(yǔ)句(yj)2; else if (表達(dá)式3) 語(yǔ)

7、句(yj)3; else 語(yǔ)句(yj)n;第15頁(yè)/共68頁(yè)第十五頁(yè),共69頁(yè)。2022-5-19-16-第16頁(yè)/共68頁(yè)第十六頁(yè),共69頁(yè)。2022-5-19-17-例子例子(l zi):輸出學(xué)生的成績(jī):輸出學(xué)生的成績(jī)#include using namespace std;void main() int x; cinx; if(x=90) cout“優(yōu)秀(yuxi)”=80) cout“良好”=60) cout“合格”endl; else cout“不及格”endl;第17頁(yè)/共68頁(yè)第十七頁(yè),共69頁(yè)。2022-5-19-18-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)

8、句語(yǔ)句 4、if 語(yǔ)句(yj)的嵌套if (表達(dá)式1) if (表達(dá)式2) 語(yǔ)句(yj)1 else 語(yǔ)句(yj)2else if (表達(dá)式3) 語(yǔ)句(yj)3 else 語(yǔ)句(yj)4第18頁(yè)/共68頁(yè)第十八頁(yè),共69頁(yè)。2022-5-19-19-第19頁(yè)/共68頁(yè)第十九頁(yè),共69頁(yè)。2022-5-19-20-例子:輸出例子:輸出(shch)a,b,c(shch)a,b,c中較大中較大的數(shù)的數(shù)#include using namespace std;void main() int a,b,c; cinabc; if (ab) if (ac) coutaendl; else coutcc) c

9、outbendl; else coutcendl; coutb?(ac?a:c):(bc?b:c ) );第20頁(yè)/共68頁(yè)第二十頁(yè),共69頁(yè)。2022-5-19-21-3.2 if3.2 if選擇選擇(xunz)(xunz)語(yǔ)句語(yǔ)句 注意(zh y):二義性 int x=-1; if (x0) if (x50) cout“x is 50”endl; else cout“x is =0”x; switch(x/10) case 10: case 9:cout“優(yōu)秀(yuxi)”endl; break; case 8: cout“良好”endl; break; case 7: case 6: c

10、out“合格”endl; break; default: cout“不及格”endl;第25頁(yè)/共68頁(yè)第二十五頁(yè),共69頁(yè)。2022-5-19-26-switch語(yǔ)句語(yǔ)句(yj)注意事項(xiàng)注意事項(xiàng) case 的常量表達(dá)式可以是字符型、整型或枚舉型,通常,也只是一個(gè)常量。不能放置(fngzh)條件不等式或變量. 各個(gè)case的先后順序不影響執(zhí)行結(jié)果,由編程者合理安排。 switch語(yǔ)句每當(dāng)找到匹配的常量表達(dá)式,則從此標(biāo)號(hào)開(kāi)始執(zhí)行下去,不再進(jìn)行判斷,即將此后的其它c(diǎn)ase下的語(yǔ)句也都執(zhí)行。直到碰到break語(yǔ)句或switch語(yǔ)句結(jié)束。 一般來(lái)說(shuō),在每個(gè)case的執(zhí)行語(yǔ)句結(jié)束處,應(yīng)該加上break語(yǔ)

11、句。第26頁(yè)/共68頁(yè)第二十六頁(yè),共69頁(yè)。2022-5-19-27-3.4 3.4 循環(huán)循環(huán)(xnhun)(xnhun)語(yǔ)句語(yǔ)句第27頁(yè)/共68頁(yè)第二十七頁(yè),共69頁(yè)。2022-5-19-28-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句三種基本語(yǔ)法(yf)1、 while 語(yǔ)句2、 dowhile 語(yǔ)句3、 for 語(yǔ)句第28頁(yè)/共68頁(yè)第二十八頁(yè),共69頁(yè)。2022-5-19-29-#include #include using namespace std;void main() coutsetfill(*) setw(2)n setw(3)n setw(4)n setw(5)n setw(6

12、)n setw(7)n setw(8)n; * * * * * * *第29頁(yè)/共68頁(yè)第二十九頁(yè),共69頁(yè)。2022-5-19-30-#include #include using namespace std;void main() int i=2; coutsetfill(*); while(i=8) coutsetw(i)n; i+; * * * * * * *循環(huán)(xnhun)變量循環(huán)體循環(huán)控制(kngzh)條件第30頁(yè)/共68頁(yè)第三十頁(yè),共69頁(yè)。2022-5-19-31-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句 主要包括3個(gè)部分: 1、循環(huán)控制條件: 判斷循環(huán)操作是否(sh fu)進(jìn)

13、行的條件; 2、循環(huán)體: 重復(fù)進(jìn)行的操作; 3、循環(huán)控制變量: 記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。第31頁(yè)/共68頁(yè)第三十一頁(yè),共69頁(yè)。2022-5-19-32-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句 while循環(huán)(xnhun)語(yǔ)句while(表達(dá)式) 循環(huán)體語(yǔ)句(yj);第32頁(yè)/共68頁(yè)第三十二頁(yè),共69頁(yè)。2022-5-19-33-例例1:1:編程循環(huán)編程循環(huán)(xnhun)(xnhun)輸出輸出1-91-9這這9 9個(gè)數(shù)字?個(gè)數(shù)字? #include using namespace std; void main() int i=1; while (i9) coutiendl

14、; i+; cout“循環(huán)(xnhun)結(jié)束”endl;運(yùn)行(ynxng)結(jié)果:123456789循環(huán)結(jié)束第33頁(yè)/共68頁(yè)第三十三頁(yè),共69頁(yè)。2022-5-19-34-例例2:2:編程計(jì)算編程計(jì)算(j sun)1+2+3+.+10(j sun)1+2+3+.+10的值的值 #include using namespace std; void main() int sum=0,i=0; whil(i=10) sum+=i; i+; coutsumendl; 55第34頁(yè)/共68頁(yè)第三十四頁(yè),共69頁(yè)。2022-5-19-35-例例3 3:打?。捍蛴?d yn)(d yn)可視字符可視字符#i

15、ncludeusing namespace std;void main() unsigned char ch=32; while(ch128) cout(int)chtcht; ch+; 第35頁(yè)/共68頁(yè)第三十五頁(yè),共69頁(yè)。2022-5-19-36-例例4 4:編程計(jì)算:編程計(jì)算(j sun) (j sun) 的的值值#include using namespace std;void main()int k=1,sum=0,n;cout0):;cinn; while(k0) coutsum/nendl;else coutn不能=0endl;第36頁(yè)/共68頁(yè)第三十六頁(yè),共69頁(yè)。2022-

16、5-19-37-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句 do.while循環(huán)(xnhun)語(yǔ)句 do 循環(huán)體語(yǔ)句(yj); while(表達(dá)式);第37頁(yè)/共68頁(yè)第三十七頁(yè),共69頁(yè)。2022-5-19-38-#include #include using namespace std;void main() int i=2; coutsetfill(*); while(i=8) coutsetw(i)n; i+; * * * * * * *do coutsetw(i)n; i+; while(i=8);第38頁(yè)/共68頁(yè)第三十八頁(yè),共69頁(yè)。2022-5-19-39-例子例子(l zi)(l

17、 zi):編程計(jì)算:編程計(jì)算 的值的值#include using namespace std;void main()int k=1,sum=0,n;cout0):;cinn; while(k0) coutsum/nendl;else coutn不能=0endl;do sum=sum+k*k; k+;while(k=n); 第39頁(yè)/共68頁(yè)第三十九頁(yè),共69頁(yè)。2022-5-19-40-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句 for循環(huán)語(yǔ)句 循環(huán)結(jié)構(gòu)(jigu) 1、表達(dá)式1 循環(huán)變量初始化; 2、表達(dá)式2 循環(huán)控制條件; 3、表達(dá)式3 循環(huán)變量的變化;for (表達(dá)式1; 表達(dá)式2; 表達(dá)

18、式3) 循環(huán)體;第40頁(yè)/共68頁(yè)第四十頁(yè),共69頁(yè)。2022-5-19-41-例例1:1:編程循環(huán)輸出編程循環(huán)輸出(shch)1-9(shch)1-9這這9 9個(gè)數(shù)字?個(gè)數(shù)字? #include using namespace std; void main() for (int i=1;i10;i+) coutiendl; cout“循環(huán)(xnhun)結(jié)束”endl; 運(yùn)行結(jié)果(ji gu):123456789循環(huán)結(jié)束第41頁(yè)/共68頁(yè)第四十一頁(yè),共69頁(yè)。2022-5-19-42-例例2:編程計(jì)算編程計(jì)算(j sun)1+2+3+.+10的值的值 #include using namesp

19、ce std; void main() int sum=0; for (int i=1;i=10;i+) sum+=i; coutsumendl; 運(yùn)行(ynxng)結(jié)果:55第42頁(yè)/共68頁(yè)第四十二頁(yè),共69頁(yè)。2022-5-19-43-#include #include using namespace std;void main() coutsetfill(*); * * * * * * *例例3 3for(int i=2;i=8;i+) coutsetw(i)n;第43頁(yè)/共68頁(yè)第四十三頁(yè),共69頁(yè)。2022-5-19-44-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句for語(yǔ)句語(yǔ)句 1、

20、可以(ky)省略 for(int i=1 ; i=9 ; i+) 循環(huán)體; int i=1; for( ; i=9 ; i+) 循環(huán)體;第44頁(yè)/共68頁(yè)第四十四頁(yè),共69頁(yè)。2022-5-19-45-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句for語(yǔ)句語(yǔ)句 2、可以(ky)省略 for(int i=1; i=9; i+) 循環(huán)體; for(int i=1; ; i+) if (i=9) 循環(huán)體; else break; /跳轉(zhuǎn)語(yǔ)句,用來(lái)跳出循環(huán) 第45頁(yè)/共68頁(yè)第四十五頁(yè),共69頁(yè)。2022-5-19-46-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句for語(yǔ)句語(yǔ)句 3、可以(ky)省略 for(i

21、nt i=1; i=9; i+) 循環(huán)體; for(int i=1; i=9; ) 循環(huán)體; i+; 第46頁(yè)/共68頁(yè)第四十六頁(yè),共69頁(yè)。2022-5-19-47-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句for語(yǔ)句語(yǔ)句 3、 同時(shí)(tngsh)省略 for(int i=1; i=9; i+) 循環(huán)體; int i=1; for(; i=9; ) 循環(huán)體; i+; 第47頁(yè)/共68頁(yè)第四十七頁(yè),共69頁(yè)。2022-5-19-48-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句for語(yǔ)句語(yǔ)句 5、極端( jdun)情況,可實(shí)現(xiàn)無(wú)限循環(huán) for( ; ; ) 循環(huán)體; 第48頁(yè)/共68頁(yè)第四十八頁(yè),共69

22、頁(yè)。2022-5-19-49-例例4:4:判斷輸出判斷輸出(shch)(shch)結(jié)果?結(jié)果?#include using namespace std;void main() for(int i=0,j=10,k=0; ij; i+,j-)k+=i*j;coutkendl;分析(fnx):i j k0 10 01 9 92 8 253 7 464 6 705 5 跳出第49頁(yè)/共68頁(yè)第四十九頁(yè),共69頁(yè)。2022-5-19-50-3.4 循環(huán)循環(huán)(xnhun)語(yǔ)句語(yǔ)句 1、for: 最適合循環(huán)次數(shù)固定,循環(huán)規(guī)律非常明顯程序。 2、while: 使用最多最頻繁的循環(huán)結(jié)構(gòu)(jigu),具有普適性

23、。 3、do_while: 最適合至少循環(huán)一次的循環(huán)結(jié)構(gòu)(jigu)。第50頁(yè)/共68頁(yè)第五十頁(yè),共69頁(yè)。2022-5-19-51-3.4.4 轉(zhuǎn)向轉(zhuǎn)向(zhunxing)語(yǔ)句語(yǔ)句1、break語(yǔ)句(yj)2、continue語(yǔ)句(yj)第51頁(yè)/共68頁(yè)第五十一頁(yè),共69頁(yè)。2022-5-19-52-3.4.4 轉(zhuǎn)向轉(zhuǎn)向(zhunxing)語(yǔ)句語(yǔ)句break用途: 常用在while、do-while、for和switch語(yǔ)句中,用來(lái)(yn li)跳出循環(huán)或switch語(yǔ)句。第52頁(yè)/共68頁(yè)第五十二頁(yè),共69頁(yè)。2022-5-19-53-例例1:1:判斷輸出判斷輸出(shch)(shch)

24、結(jié)果?結(jié)果?#include using namespace std;void main() int sum=0; for (int i=1;i10;i+) if (i % 3=0) break; sum+=i; coutsumendl;分析(fnx)i sum1 12 33 跳出第53頁(yè)/共68頁(yè)第五十三頁(yè),共69頁(yè)。2022-5-19-54-3.4.4 轉(zhuǎn)向轉(zhuǎn)向(zhunxing)語(yǔ)句語(yǔ)句continue用途 用于循環(huán)語(yǔ)句中,結(jié)束本次循環(huán),進(jìn)行下一次循環(huán);即跳過(guò)循環(huán)體中尚未執(zhí)行(zhxng)的部分。第54頁(yè)/共68頁(yè)第五十四頁(yè),共69頁(yè)。2022-5-19-55-例例1 1:判斷:判斷(p

25、ndun)(pndun)輸出結(jié)果?輸出結(jié)果?#include using namespace std;void main() int sum=0; for (int i=1;i10;i+) if (i % 3=0) continue; sum+=i; coutsumendl;分析(fnx)i sum1 12 33 3 7 12 12 19 27 27 跳出第55頁(yè)/共68頁(yè)第五十五頁(yè),共69頁(yè)。2022-5-19-56-3.5 3.5 循環(huán)循環(huán)(xnhun)(xnhun)嵌套嵌套第56頁(yè)/共68頁(yè)第五十六頁(yè),共69頁(yè)。2022-5-19-57-3.5 3.5 循環(huán)循環(huán)(xnhun)(xnhun

26、)嵌套嵌套 編程輸出國(guó)際象棋(gujxingq)棋盤(pán) #include using namespace std; void main() for (int i=0;i8;i+)for (int j=0;j8;j+)if (i+j)%2=0) cout; else cout ; coutn; 第57頁(yè)/共68頁(yè)第五十七頁(yè),共69頁(yè)。2022-5-19-58-思考思考(sko):寫(xiě)出每個(gè)程序各輸出:寫(xiě)出每個(gè)程序各輸出結(jié)果結(jié)果A:for (i=0,k=1;i10;i+) if (i%5) k=i*10; else cout”k:”k;B:for (i=0,k=1;i10;i+) if (i%5) k

27、=i*10; cout”k:”k;D:for (i=0,k=1;i10;i+) if (i%5) k=i*10; cout”k:”k; C:for (i=0,k=1;i10;i+) if (i%5!=0) k=i*10;cout”k:”k;第58頁(yè)/共68頁(yè)第五十八頁(yè),共69頁(yè)。2022-5-19-59-思考思考(sko) 題目: 使用(shyng)For循環(huán)輸出如下圖形: * * * * * * *第59頁(yè)/共68頁(yè)第五十九頁(yè),共69頁(yè)。2022-5-19-60-#include using namespace std;void main() for (int i=1;ii; j-) cout ; for (j=1; j=i; j+) cout*; cout0, 有兩個(gè)不等的實(shí)根; (4) b2-4ac0, 有兩個(gè)共軛復(fù)根. 所以,程序中將使用選擇結(jié)構(gòu)分別實(shí)現(xiàn)各種情況。第62頁(yè)/共68頁(yè)第六十二頁(yè),共69頁(yè)。2022-5-19-63-注意:由于(yuy)a,b

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論