<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>

    c《面向?qū)ο蟪绦蛟O計》第三章.ppt

    上傳人:za****8 文檔編號:14643785 上傳時間:2020-07-27 格式:PPT 頁數(shù):100 大小:878KB
    收藏 版權(quán)申訴 舉報 下載
    c《面向?qū)ο蟪绦蛟O計》第三章.ppt_第1頁
    第1頁 / 共100頁
    c《面向?qū)ο蟪绦蛟O計》第三章.ppt_第2頁
    第2頁 / 共100頁
    c《面向?qū)ο蟪绦蛟O計》第三章.ppt_第3頁
    第3頁 / 共100頁

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

    14.9 積分

    下載資源

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

    資源描述:

    《c《面向?qū)ο蟪绦蛟O計》第三章.ppt》由會員分享,可在線閱讀,更多相關(guān)《c《面向?qū)ο蟪绦蛟O計》第三章.ppt(100頁珍藏版)》請在裝配圖網(wǎng)上搜索。

    1、2020/7/27,北京科技大學計算機系,-1-,C+大學基礎(chǔ)教程,第3章 C+控制語句 北京科技大學計算機系,2020/7/27,北京科技大學計算機系,-2-,用計算機解決實際問題,首先要分析問題,設計合適的算法,然后編程實現(xiàn)算法。,2020/7/27,北京科技大學計算機系,-3-,第3章 過程化語句,3.0 算法的基本控制結(jié)構(gòu): 算法,基本控制結(jié)構(gòu),基本控制語句 3.1 順序結(jié)構(gòu)程序設計 3.2 if選擇語句 語句格式,IF嵌套,考點說明 3.3 switch選擇語句 語句格式和執(zhí)行順序,例子,考點說明 3.4 循環(huán)語句 使用場合,基本概念,格式 轉(zhuǎn)向語句 3.5 循環(huán)嵌套 國際象棋,例2

    2、 3.6 應用舉例 素數(shù),按位翻轉(zhuǎn),小球落地(不要求), 小牛家族,最大公約數(shù),階乘 課堂練習,總結(jié)和作業(yè),2020/7/27,北京科技大學計算機系,-4-,算法,什么是算法 為解決某一應用問題而采用的解題步驟 算法 1、計算機執(zhí)行的操作 2、這些操作的順序,2020/7/27,北京科技大學計算機系,-5-,算法,算法的描述方式 用自然語言描述算法 用流程圖描述算法 用N-S結(jié)構(gòu)圖描述算法,例如:輸出兩個數(shù)中的最大數(shù),2020/7/27,北京科技大學計算機系,-6-,用自然語言描述算法,第一步:輸入x和y的值 第二步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。,易于理解,但冗

    3、長,不夠精確,難于描述復雜算法。,例如當描述“輸出10個數(shù)中最大數(shù)”的算法時,會冗長、難于理解,2020/7/27,北京科技大學計算機系,-7-,用流程圖描述算法,用流程圖描述算法,起止框,輸入/輸出框,判斷框,處理框,流程線,2020/7/27,北京科技大學計算機系,-8-,3.1 算法的基本控制結(jié)構(gòu),流程圖 開始/結(jié)束 執(zhí)行 判斷 聯(lián)系,2020/7/27,北京科技大學計算機系,-9-,用N-S結(jié)構(gòu)圖描述算法,用N-S結(jié)構(gòu)圖描述的算法,2020/7/27,北京科技大學計算機系,-10-,3.1 算法的基本控制結(jié)構(gòu),程序的三種基本控制結(jié)構(gòu) 小結(jié) (1)順序結(jié)構(gòu) (2)選擇結(jié)構(gòu) (3)循環(huán)結(jié)構(gòu)

    4、,已經(jīng)證明,任何復雜的問題都可以三種基本算法結(jié)構(gòu)來描述:順序、選擇、循環(huán)。因此用計算機語句描述的程序也包含三種基本結(jié)構(gòu)。,2020/7/27,北京科技大學計算機系,-11-,順序結(jié)構(gòu)流程圖,A,B,A,B可以是一條語句,也可以是一條復合語句,,C+中默認的語句執(zhí)行次序為:順序執(zhí)行。,2020/7/27,北京科技大學計算機系,-12-,分支結(jié)構(gòu)流程圖,2020/7/27,北京科技大學計算機系,-13-,循環(huán)結(jié)構(gòu)流程圖,2020/7/27,北京科技大學計算機系,-14-,總結(jié)以上三種結(jié)構(gòu)有以下的共同特點: )只有一個入口。 )只有一個出口。 )結(jié)構(gòu)內(nèi)的每一個部分都有機會被執(zhí)行到 )結(jié)構(gòu)內(nèi)不存在死循

    5、環(huán)。,2020/7/27,北京科技大學計算機系,-15-,3.1 算法的基本控制結(jié)構(gòu),流程控制語句 選擇語句:if.else、switch 選擇結(jié)構(gòu) 循環(huán)語句: while、for 、do.while 循環(huán)結(jié)構(gòu) 轉(zhuǎn)向語句:break、continue,2020/7/27,北京科技大學計算機系,-16-,順序結(jié)構(gòu)程序是按照語句的先后順序依次執(zhí)行。一般而言,順序結(jié)構(gòu)的算法中應包括幾個基本操作步驟。各操作步驟的邏輯順序關(guān)系如圖3-1所示。,圖3-1 順序程序的一般算法,2020/7/27,北京科技大學計算機系,-17-,【例3-2】數(shù)據(jù)交換。從鍵盤輸入x、y的值,輸出交換以后的值。,#include

    6、 using namespace std; int main( ) int x,y,c; cout xy; cout nbefore exchange: x=x y=yendl; c=x; x=y; y=c; cout nafter exchange: x=x y=yendl; return 0; ,2020/7/27,北京科技大學計算機系,-18-,1. 簡單分支(無else分支) if (表達式) 語句 例:if (xy) coutb) c=a;a=b;b=c; 2. 雙分支 if (表達式) 語句1 else 語句2 例:if (a=b) couta; else coutb; 3. 多分

    7、支 if (表達式1) 語句1 else if (表達式2) 語句2 else if (表達式3) 語句3 else 語句 n,if 語句 三種形式,1條內(nèi)嵌語句,表達式是邏輯表達式,例子:閏年,2020/7/27,北京科技大學計算機系,-19-,例子,任意輸入一個4位整數(shù)的年份,判斷該年是否是閏年?,閏年的條件: 能夠被4整除,但不能被100整除的年份 能夠被4整除,同時也能被400整除的年份,是指年份能被4整除的那些年,但不包括能被100整除而不能被400整除的年,if (year % 4 = 0 void main() int year; cinyear; if (year % 4 =

    8、0 ,2020/7/27,北京科技大學計算機系,-21-,2020/7/27,北京科技大學計算機系,-22-,例子:輸出學生的成績,#include using namespace std; void main() int x; cinx; if(x=90) cout=80) cout=60) cout“合格”endl; else cout“不及格”endl; ,2020/7/27,北京科技大學計算機系,-23-,3.2 if選擇語句,4、if 語句的嵌套,if (表達式1) if (表達式2) 語句1 else 語句2 else if (表達式3) 語句3 else 語句4,2020/7/2

    9、7,北京科技大學計算機系,-24-,2020/7/27,北京科技大學計算機系,-25-,例子:輸出a,b,c中最大的數(shù),#include using namespace std; void main() int a,b,c; cinabc; if (ab) if (bc) coutcendl; else coutbendl; else if (ac) coutcendl; else coutaendl; ,cout (ab?(bc?c:b):(ac?c:a ) );,演示,2020/7/27,北京科技大學計算機系,-26-,1.內(nèi)嵌語句只能是一條語句。 eg. a,b,c的值分別為1,2,3

    10、if(a+b) c=a; a=b;b=c; c=3; a=2;b=3;,考點注意:,c=3;a=2;b=2;,2020/7/27,北京科技大學計算機系,-27-,2.條件表達式是邏輯值,但可以使用任何類型的表達式,結(jié)果非0為真,結(jié)果0為假。 思考執(zhí)行下面語句后,變量b的值是多少? a = 10; b = 30; if (a = 0) b = 15; else b = 20 ; if (a = 1) b = 15; else b = 20 ; if (a = 1) b = 15; else b = 20 ; 注意: 賦值表達式 a = 1與關(guān)系表達式 a = = 1 的區(qū)別。 表達式的值為0時語

    11、句的執(zhí)行情況。,注意:,2020/7/27,北京科技大學計算機系,-28-,3.2 if選擇語句,3 注意:二義性(出現(xiàn)嵌套) int x=-1; if (x0) if (x50) cout“x is 50”endl; else cout“x is =0”endl;,if和else的對應關(guān)系,else總是與離它最近的if匹配。,2020/7/27,北京科技大學計算機系,-29-,說明:C+規(guī)定,在if嵌套時,else總是與最近的if配對 eg. if (b1) if (b2) x=1; else x=2; if (b1) if (b2) x=1; else x=2; if (b1) if (b

    12、2) x=1; else x=2; 如果內(nèi)嵌的if是簡單分支,沒有else子句(即if和else的數(shù)目不一樣),必須用 將其括起,2020/7/27,北京科技大學計算機系,-30-, if (c=50) cout 150n; if (c=50) cout 50=c=100n; else cout c50n;,例如:, if (c=50) cout 50=c=100n;,與哪個if 配對?,2020/7/27,北京科技大學計算機系,-31-,再例如:,if(ab) /1 if(ac) /2 if(ad) flag=1; /3 else flag=2; /4 else flag=3; /5,問題:

    13、第4 行和第5 行的 else 和哪一個 if 相匹配? 分析:匹配方案可以有很多種:(2-4,1-5)、(3-4, 2-5),(1-4,),匹配規(guī)則:在嵌套的ifelse語句中,else總是與上面的、離它最近的、在同一復合語句中還沒有配對的if配對。,2020/7/27,北京科技大學計算機系,-32-,等價于:, if (ab) if (ac) if (ad) flag=1; else flag=2; else flag=3;, if (ab) if (ac) if (ad) flag=1; else flag=2; else flag=3;,flag=3的條件:,flag=3 的條件:,當

    14、 cab 時,當 a b 時,2020/7/27,北京科技大學計算機系,-33-,一般形式 switch (表達式) case 常量表達式 1:語句1 case 常量表達式 2:語句2 case 常量表達式 n:語句n default : 語句n+1 ,switch 語句,執(zhí)行順序 以case中的常量表達式值為入口標號,由此開始順序執(zhí)行。因此,每個獨立的case分支最后應該加break語句,跳出整個switch語句。,2020/7/27,北京科技大學計算機系,-34-,2020/7/27,北京科技大學計算機系,-35-,例子:輸出學生的成績,int x; cinx; switch(x/10)

    15、case 10: case 9:cout“優(yōu)秀”endl; break; case 8: cout“良好”endl; break; case 7: case 6: cout“合格”endl; break; default: cout“不及格”endl; ,2020/7/27,北京科技大學計算機系,-36-,使用switch語句應注意的問題,case分支可包含多個語句,且不用 。 表達式、常量表達式值都是int型或char型。 若干分支執(zhí)行內(nèi)容相同可共用一組語句。 Break退出switch結(jié)構(gòu),2020/7/27,北京科技大學計算機系,-37-,例子,k=23,int v1=0,v2=0,v3

    16、=0,v4=0,k; cin k; switch(k) default:v4+; case 1:v1+; case 2:v3+; case 3:v2+; ,v1=1, v2=1, v3=1, v4=1,2020/7/27,北京科技大學計算機系,-38-,問題1:如何根據(jù)收入,確定一個人的納稅比例及納稅額?,當一個公司有多名員工時,如何計算每個人的納稅比例及納稅額?,提出問題:,C+語言:循環(huán)語句,?,?,問題2 :如何根據(jù)學生的分數(shù)判斷是否及格?,如何根據(jù)全班學生的分數(shù),分別判斷他們是否及格?,2020/7/27,北京科技大學計算機系,-39-,#include #include using

    17、namespace std; void main() coutsetfill(*) setw(2)n setw(3)n setw(4)n setw(5)n setw(6)n setw(7)n setw(8)n; ,* * * * * * *,2020/7/27,北京科技大學計算機系,-40-,#include #include using namespace std; void main() int i=2; coutsetfill(*); while( ) coutsetw( )n; ,* * * * * * *,循環(huán)變量,循環(huán)體,循環(huán)控制條件,i=8,i,i+;,2020/7/27,北京科

    18、技大學計算機系,-41-,3.4 循環(huán)語句,主要包括3個部分: 1、循環(huán)控制條件: 判斷循環(huán)操作是否進行的條件; 2、循環(huán)體: 重復進行的操作; 3、循環(huán)控制變量: 記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。,2020/7/27,北京科技大學計算機系,-42-,3.4 循環(huán)語句,三種基本語法 1、 while 語句 格式和順序,例子 2、 dowhile 語句格式和順序,對比,例子 3、 for 語句 格式和順序,例子,說明 三種語句的應用區(qū)別,2020/7/27,北京科技大學計算機系,-43-,3.4 循環(huán)語句,while循環(huán)語句,while(表達式) 循環(huán)體語句;,2020/7/27,北

    19、京科技大學計算機系,-44-,例1:編程循環(huán)輸出1-9這9個數(shù)字?,#include using namespace std; void main() int i=1; while ( ) cout“循環(huán)結(jié)束”endl; ,運行結(jié)果: 1 2 3 4 5 6 7 8 9 循環(huán)結(jié)束,i=9,coutiendl; i+;,2020/7/27,北京科技大學計算機系,-45-,例2:編程計算1+3+5+.+99的值,#include using namespace std; void main() int sum=0,i=1; while( ) coutsumendl; ,2500,sum+=i; i

    20、+=2;,i=99,2020/7/27,北京科技大學計算機系,-46-,注意:,如果while的 (表達式) 值為0,則循環(huán)體一次也不執(zhí)行 (例如當i的初值=100) 。 在循環(huán)體中必須有使循環(huán)趨向結(jié)束的操作,否則循環(huán)將無限進行(死循環(huán))。 在循環(huán)體中,語句的先后位置必須符合邏輯,否則會影響運算結(jié)果。,思考程序段的輸出? while (i=99) i+=2; sum=sum+i; ,運行后,輸出: sum=2600 原因是什么?,2020/7/27,北京科技大學計算機系,-47-,其他的while 語句形式,while (0) . 由于表達式恒等于0,所以循環(huán)體永遠也不會執(zhí)行,是一個邏輯錯誤的

    21、語句,while (1) . 由于表達式恒等于1,所以不可能通過循環(huán)控制條件來結(jié)束循環(huán)體的執(zhí)行,即死循環(huán)。 為了保證循環(huán)正常運行,應該特別注意: 循環(huán)控制條件的描述 控制條件的初始狀態(tài)(初始值) 循環(huán)體內(nèi)部對控制條件的影響,2020/7/27,北京科技大學計算機系,-48-,例3:打印可視字符,#include using namespace std; void main() unsigned char ch=32; while(ch128) cout(int)chtcht; ch+; ,2020/7/27,北京科技大學計算機系,-49-,例4:編程計算 的值,#include using n

    22、amespace std; void main() int k=1,sum=0,n; cout0):; cinn; while( ) if(n0) coutsum/nendl; else coutn不能=0endl; ,k=n,sum=sum+k*k; k+;,2020/7/27,北京科技大學計算機系,-50-,3.4 循環(huán)語句,do.while循環(huán)語句,do 循環(huán)體語句; while(表達式);,2020/7/27,北京科技大學計算機系,-51-,do-while 語句,執(zhí)行順序 先執(zhí)行循環(huán)體語句,后判斷條件。表達式為 true 時,繼續(xù)執(zhí)行循環(huán)體 與while 語句的比較: do-whil

    23、e語句至少執(zhí)行循環(huán)體一次; While語句有可能一次也不執(zhí)行循環(huán)體,2020/7/27,北京科技大學計算機系,-52-,對比下列程序:,程序1: #include void main( ) int i, sum(0); cini; while(i=10) sum+=i; i+; coutsum=sumendl; ,程序2: #include void main( ) int i, sum(0); cini; do sum+=i; i+; while(i=10); coutsum=sumendl; ,2020/7/27,北京科技大學計算機系,-53-,#include #include usin

    24、g namespace std; void main() int i=2; coutsetfill(*); while(i=8) coutsetw(i)n; i+; ,* * * * * * *,do while( );,i=8,coutsetw(i)n; i+;,2020/7/27,北京科技大學計算機系,-54-,例子:編程計算 的值,#include using namespace std; void main() int k=1,sum=0,n; cout0):; cinn; while(k0) coutsum/nendl; else coutn不能=0endl;,do sum=sum+

    25、k*k; k+; while(k=n);,2020/7/27,北京科技大學計算機系,-55-,3.4 循環(huán)語句,for循環(huán)語句 循環(huán)結(jié)構(gòu) 1、表達式1 循環(huán)變量初始化; 2、表達式2 循環(huán)控制條件; 3、表達式3 循環(huán)變量的變化;,for (表達式1; 表達式2; 表達式3) 循環(huán)體;,2020/7/27,北京科技大學計算機系,-56-,例1:編程循環(huán)輸出1-9這9個數(shù)字?,#include using namespace std; void main() for (int i=1; i10; i+) coutiendl; cout“循環(huán)結(jié)束”endl; ,運行結(jié)果: 1 2 3 4 5 6

    26、7 8 9 循環(huán)結(jié)束,2020/7/27,北京科技大學計算機系,-57-,例2:編程計算1+2+3+.+10的值,#include using namespce std; void main() int sum=0; for (int i=1;i=10;i+) sum+=i; coutsumendl; ,運行結(jié)果:55,2020/7/27,北京科技大學計算機系,-58-,#include #include using namespace std; void main() coutsetfill(*); ,* * * * * * *,例3,for(int i=2;i=8;i+) coutsetw

    27、(i)n;,2020/7/27,北京科技大學計算機系,-59-,for 語句說明,1,for語句中的表達式可以部分或全部省略,但兩個“;”不可省略。省略表達式1時,此時應在for語句之前給循環(huán)變量賦初值。如果省略表達式2,即不判斷循環(huán)條件,循環(huán)無終止地進行下去。省略表達式3時,此時程序設計者應另外設法保證循環(huán)能正常結(jié)束。 2,for后一對圓括號中的表達式可以是任意有效的C+語言表達式。例如: for(sum=0,i=1;i=100;sum=sum+i,i+) ,2020/7/27,北京科技大學計算機系,-60-,省略for語句的表達式, 表達式1、2、3全省略,即: for ( ; ; ) 就

    28、等同于:while (1),會無限循環(huán)(死循環(huán)),注意:在省略某個表達式時,應在適當位置進行循環(huán)控制的必要操作,以保證循環(huán)的正確執(zhí)行, 省略表達式1和表達式3,即: for(;表達式2;) 就等同于:while( 表達式2 ) 省略表達式2,即: for(表達式1; ;表達式3) 就等同于:表達式1; while(1)表達式3;,2020/7/27,北京科技大學計算機系,-61-,例如:, i=1; for ( ; i=100; i+) sum+=i;, for (i=1; ; i+) if(i100) for (i=1; i100) i+; ,2020/7/27,北京科技大學計算機系,-62

    29、-,例4:判斷輸出結(jié)果?,#include using namespace std; void main() for(int i=0,j=10,k=0; ij; i+,j-) k+=i*j; coutkendl; ,分析: i j k 0 10 0 1 9 9 2 8 25 3 7 46 4 6 70 5 5 跳出,2020/7/27,北京科技大學計算機系,-63-,3.4 循環(huán)語句,1、for: 最適合循環(huán)次數(shù)固定,循環(huán)規(guī)律非常明顯程序。 2、while: 使用最多最頻繁的循環(huán)結(jié)構(gòu),具有普適性。 3、do_while: 最適合至少循環(huán)一次的循環(huán)結(jié)構(gòu)。,2020/7/27,北京科技大學計算機系

    30、,-64-,3.4.4 轉(zhuǎn)向語句,1、break語句 可以用在switch和循環(huán)結(jié)構(gòu),用在循環(huán)退出本層循環(huán) 2、continue語句 只能用在循環(huán)結(jié)構(gòu)中,表示退出本次循環(huán),2020/7/27,北京科技大學計算機系,-65-,3.4.4 轉(zhuǎn)向語句break,用途: 常用在while、do-while、for和switch語句中,用來跳出循環(huán)或switch語句。,2020/7/27,北京科技大學計算機系,-66-,5.5.2 循環(huán)中break的應用,break;,while語句,break;,do-while語句,break;,for語句,2020/7/27,北京科技大學計算機系,-67-,例如:

    31、, int x,n=0,s=0; while (nx; if (x0) break; s+=x; n+; ;, int x,n=0,s=0; do cin x; if (x0) break; s+=x; n+; while (n10);, for (n=0,s=0; nx; if (x0) break; s+=x; ,2020/7/27,北京科技大學計算機系,-68-,例1:判斷輸出結(jié)果?,#include using namespace std; void main() int sum=0; for (int i=1;i10;i+) if (i % 3=0) break; sum+=i; c

    32、outsumendl; ,分析 i sum 1 1 2 3 3 跳出,2020/7/27,北京科技大學計算機系,-69-,3.4.4 轉(zhuǎn)向語句continue,用途 用于循環(huán)語句中,結(jié)束本次循環(huán),進行下一次循環(huán);即跳過循環(huán)體中尚未執(zhí)行的部分。,2020/7/27,北京科技大學計算機系,-70-,continue;,while語句,continue;,do-while語句,continue;,for語句,2020/7/27,北京科技大學計算機系,-71-,例如:, int x,n=0,s=0; while (nx; if (x0) continue; s+=x; n+; ;, int x,n=0

    33、,s=0; do cin x; if (x0) continue; s+=x; n+; while (n10);, for (n=0,s=0; nx; if (x0) continue; s+=x; ,2020/7/27,北京科技大學計算機系,-72-,例1:判斷輸出結(jié)果?,#include using namespace std; void main() int sum=0; for (int i=1;i10;i+) if (i % 3=0) continue; sum+=i; coutsumendl; ,分析 i sum 1 1 2 3 3 3 7 12 12 19 27 27 跳出,20

    34、20/7/27,北京科技大學計算機系,-73-,3.5 循環(huán)嵌套,編程輸出國際象棋棋盤 #include using namespace std; void main() for (int i=0;i8;i+) for (int j=0;j8;j+) cout; else cout ; coutn; , ,0 1 2 3 4 5 6 7,0 1 2 3 4 5 6 7,if (i+j)%2=0),2020/7/27,北京科技大學計算機系,-74-,3.3.5 循環(huán)嵌套,【例3-15】打印由數(shù)字組成的如下所示的金字塔圖案。 1 222 33333 4444444 555555555 666666

    35、66666 7777777777777 888888888888888 99999999999999999 分析:打印圖案一般可由多重循環(huán)實現(xiàn),外循環(huán)用來控制打印的行數(shù),內(nèi)循環(huán)控制每行的空格數(shù)和字符個數(shù)。實現(xiàn)打印上金字塔圖案的程序如下。,2020/7/27,北京科技大學計算機系,-75-,注意:,#include using namespace std; int main( ) char c=48; int i, k, j; for(i=1; ;i+) / 外循環(huán)控制打印行數(shù) for(k=1; ;k+) /每行起始打印位置 cout ; for (j= 1 ; ; j+)/內(nèi)循環(huán)控制打印個數(shù)

    36、cout (char)(c+i); /打印內(nèi)容數(shù)字字符19 cout n; / 換行 return 0; ,i=9,k=10-i,j= 2* i- 1,2020/7/27,北京科技大學計算機系,-76-,注意:,while、do-while、for循環(huán)語句可以并列,也可以相互嵌套,但要層次清楚,不能出現(xiàn)交叉。 多重循環(huán)程序執(zhí)行時,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)都需要循環(huán)執(zhí)行多次。 例如:,for(a=1;a=10;a+) for (b=0;b=5;b+) ,外循環(huán)執(zhí)行了10次,內(nèi)循環(huán)執(zhí)行6次 循環(huán)正常結(jié)束時,內(nèi)循環(huán)執(zhí)行了106=60次,2020/7/27,北京科技大學計算機系,-77-,3.6

    37、應用舉例1,任意輸入一個整數(shù),判斷是否是素數(shù)? 問題:什么是素數(shù)?,2020/7/27,北京科技大學計算機系,-78-,#include using namespace std; void main() int n,i; cinn; for (i=2;in;i+) if (n%i=0) break; if (in) coutn不是素數(shù)!n; else coutn是素數(shù)n; ,2020/7/27,北京科技大學計算機系,-79-,改進:輸出2-100之間的素數(shù),#include #include using namespace std; void main() for(int k=2;kn) co

    38、utkt; ,2020/7/27,北京科技大學計算機系,-80-,3.6 應用舉例2,題目 任意輸入一個整數(shù),按位翻轉(zhuǎn)輸出。例如輸入124,輸出421。,2020/7/27,北京科技大學計算機系,-81-,#include using namespace std; void main() int i, n, result=0; coutn; cout按位翻轉(zhuǎn)的結(jié)果為:; while (n!=0) i =n % 10; result=result*10+i; n /= 10; coutresultendl; ,2020/7/27,北京科技大學計算機系,-82-,do-while語句的簡單應用,【

    39、例3-9】用輾轉(zhuǎn)相除法求m和n的最大公約數(shù)。,思路: 先求m和n相除的余數(shù)r 然后將mn,將nr,并判斷r(或n) 如果r0,再重復求余數(shù),直到 r 等于 0 時結(jié)束循環(huán) 此時的m為最大公約數(shù),2020/7/27,北京科技大學計算機系,-83-,算法和程序:,#include using namespace std; int main( ) int m,n,r; cin mn; do r=m%n; m=n; n=r; while(r!=0); cout 最大公約數(shù)是: m n; return 0; ,程序運行情況如下: 60, 96 12,2020/7/27,北京科技大學計算機系,-84-,3

    40、.6 應用舉例3,題目 一球從100米高度落下,每次落地后反彈回原高度的一半,再落下。編程求解它在第n次落地時,共經(jīng)過多少米?,2020/7/27,北京科技大學計算機系,-85-,#include using namespace std; void main() int n=10; double height=100; double sum=height; for (int i=1;in;i+) sum+=height; height/=2; coutsumendl; ,2020/7/27,北京科技大學計算機系,-86-,3.6 應用舉例4,題目 若一頭小母牛,從出生起第四個年頭開始每年開始生

    41、一頭小母牛,按此規(guī)律,第n年時有多少頭母牛?,f(1)=1; f(2)=1; f(3)=1; f(n)=f(n-1)+f(n-3);,2020/7/27,北京科技大學計算機系,-87-,#include using namespace std; void main() int n; long a=1, b=1, c=1, temp; cout n; for(int i=4; i=n; i+) temp=a+c; a=b; b=c; c=temp; cout c endl; ,2020/7/27,北京科技大學計算機系,-88-,for語句的簡單應用,【例3-13 】求n! ,即計算p=123n的

    42、值。,思路:求階乘與求累加的運算處理過程類似,只要將“+”變?yōu)椤?”。,設置: 乘數(shù)i ,初值為1,終值為n(n是循環(huán)控制終值,需要從鍵盤輸入) 累乘器 p ,每次循環(huán)令p = p*i,2020/7/27,北京科技大學計算機系,-89-,程序:,#include using namespace std; int main( ) int i,n,p=1; cout n; for (i=1; i=n; i+) p = p * i; cout n != p n ; return 0; ,思考: 如何輸出1!, 2!, , n! ? 如何求s =1!+ 2!+ + n! ?,2020/7/27,北京科

    43、技大學計算機系,-90-,總結(jié),三種基本結(jié)構(gòu):順序、選擇和循環(huán) 流程圖和偽碼,幫助我們設計算法、完善算法,增強算法的可讀性,2020/7/27,北京科技大學計算機系,-91-,作業(yè),P61 9,10,11,2020/7/27,北京科技大學計算機系,-92-,課堂練習,選擇題 例題1:如果有以下語句: int a,b; char m,n; cinabmn; 則下列輸入數(shù)據(jù)的方式中正確的是( )。 A10,20,X,Y B1020 XY C10 20 X Y D10、20、X、Y,C,用cin輸入時,空格和回車鍵均可作為輸入字符之間的分隔符,逗號不能作為分隔符。字符型變量只能容納一個字符。,202

    44、0/7/27,北京科技大學計算機系,-93-,課堂練習,選擇題 以下不正確的語句是( ) 。 Aif(xy); Bif(x=y) if(a5) a-=1; b+=1; else a+=1; b-=1; cout”a=”aendl; cout”b=”b; ,D,在ifelse語句的中間應為單條語句或復合語句,不能為多條語句。,A5 Ba=5 Ca=5 D編譯時出錯 7 b=7 b=6,2020/7/27,北京科技大學計算機系,-95-,課堂練習,以下不正確的是 ( )。 A語句for(i=0;i+)表示無限循環(huán) Bfor(;)表示無限循環(huán) Cfor()也表示無限循環(huán) Dwhile(1)表示無限循

    45、環(huán),C,for循環(huán)語句中的表達式可以省略,但分號不可省略。,2020/7/27,北京科技大學計算機系,-96-,課堂練習,下面循環(huán)體的執(zhí)行次數(shù)為 ( )。 #include void main() int a,b; for(a=0,b=5;a=b+1;a+=2,b-) coutaendl; A3 B2 C1 D0,A,在for語句的表達式中使用了逗號運算符對變量a和b 進行賦初值,每次循環(huán)后改變變量a和b 的值,直到a=b.,分析 a b 0 5 2 4 4 3 6 2,2020/7/27,北京科技大學計算機系,-97-,課堂練習,有以下程序段: int n=0; while(n=1)n+;

    46、while循環(huán)執(zhí)行次數(shù)是_ _ 。,無限次,下面程序運行結(jié)束后,k的值為_ _ 。 #include void main() int i,j,k; for(i=0,j=10;i=j;i+,j-) k=i+j; coutk; ,10,2020/7/27,北京科技大學計算機系,-98-,課堂練習,有以下程序段: int n=0; while(n=1)n+; while循環(huán)執(zhí)行次數(shù)是_ _ 。,無限次,下面程序運行結(jié)束后,k的值為_ _ 。 #include void main() int i,j,k; for(i=0,j=10;i=j;i+,j-) k=i+j; countk; ,10,2020/

    47、7/27,北京科技大學計算機系,-99-,課堂練習,下面的程序存在著語法錯誤,請指出并予以修改 。 #include void main() float x,y; /1 if(x0); /2 x=x+y; /3 coutxendl; /4 else cout-x; /5 ,選擇結(jié)構(gòu)語句的語法要求,條件表達式放在括號內(nèi),后面不加逗號。if 語句后面有多于一個語句時要加大括號“”,成為復合語句。,錯,2020/7/27,北京科技大學計算機系,-100-,第七周實驗,補充實驗:編寫一個程序根據(jù)輸入的三角形的三條邊判斷是否能組成三角形,如果可以則輸出它的面積和三角形類型。 實驗: 實驗3 P62 14(評分系統(tǒng)),

    展開閱讀全文
    溫馨提示:
    1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
    2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
    3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
    4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
    5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
    6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
    7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

    相關(guān)資源

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

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

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


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

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>