語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)教案_第1頁(yè)
語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)教案_第2頁(yè)
語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)教案_第3頁(yè)
語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)教案_第4頁(yè)
語(yǔ)言選擇結(jié)構(gòu)程序設(shè)計(jì)教案_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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、 選擇結(jié)構(gòu)程序設(shè)計(jì)(一)說(shuō)明內(nèi)容1關(guān)系運(yùn)算符和關(guān)系表達(dá)式2邏輯運(yùn)算符和邏輯表達(dá)式3條件運(yùn)算符及條件表達(dá)式4IF語(yǔ)句5IF語(yǔ)句的嵌套生活中的“十字路口”也屬于選擇結(jié)構(gòu)類型。舉例說(shuō)明實(shí)例講解說(shuō)明舉例說(shuō)明通過(guò)講解,向if語(yǔ)句過(guò)渡通過(guò)與前面引入的例子重點(diǎn)說(shuō)明其格式結(jié)合實(shí)例說(shuō)明其注意事項(xiàng)通過(guò)圖例說(shuō)明嵌套的匹配關(guān)系。對(duì)比實(shí)例,詳細(xì)細(xì)化注意事項(xiàng)通過(guò)實(shí)例,說(shuō)明分支程序設(shè)計(jì)的思想,鞏固前面所講的內(nèi)容。重點(diǎn)1關(guān)系運(yùn)算符和關(guān)系表達(dá)式2邏輯運(yùn)算符和邏輯表達(dá)式3條件運(yùn)算符及條件表達(dá)式4IF語(yǔ)句的格式使用5IF語(yǔ)句的嵌套難點(diǎn)復(fù)雜條件的表示;IF語(yǔ)句的正確使用。問(wèn)題提出通過(guò)前面的順序結(jié)構(gòu)程序設(shè)計(jì)的介紹,我們都知道順序結(jié)構(gòu)程

2、序設(shè)計(jì)按照自上而下的流程的順序執(zhí)行,但是在實(shí)際生活中,僅順序結(jié)構(gòu)是無(wú)法滿足用戶要求的,并不是所有的程序都是自上而下的順序執(zhí)行,而是根據(jù)條件有選擇的執(zhí)行。這就是我們將要學(xué)習(xí)的分支結(jié)構(gòu)程序設(shè)計(jì)。詳細(xì)內(nèi)容一、導(dǎo)入討論導(dǎo)入:請(qǐng)教學(xué)生翻譯下面的英語(yǔ)句子 a.If she is not in Class1 then she will be in Class2. b.If it does not rain then I'll go to park, else I'll go to the movie.      

3、 創(chuàng)造情景,使學(xué)生感覺(jué)新鮮和自信,學(xué)生可以翻譯的準(zhǔn)確無(wú)誤。此過(guò)程中,教師引導(dǎo)學(xué)生注意if 、then、 else三個(gè)詞的使用。學(xué)生歸納:條件語(yǔ)句的一般形式:格式1:if 條件 then 語(yǔ)句組格式2:if 條件 then 語(yǔ)句組1 else 語(yǔ)句組2二、if中的條件表示1關(guān)系運(yùn)算符和關(guān)系表達(dá)式在程序中經(jīng)常需要比較兩個(gè)量的大小關(guān)系, 以決定程序下一步的工作。比較兩個(gè)量的運(yùn)算符稱為關(guān)系運(yùn)算符。(1)關(guān)系運(yùn)算符:操作符 作用 > 大于 >= 大于等于 < 小于 <= 小于等于 = = 等于 != 不等于 關(guān)系運(yùn)算符都是雙目運(yùn)算符,用于兩個(gè)運(yùn)算對(duì)象比較。注意:不能將“<=

4、”寫(xiě)成“=<”,也不能將“>=”寫(xiě)成“=>”。(2)關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個(gè)運(yùn)算對(duì)象連接起來(lái)的式子稱為關(guān)系表達(dá)式。運(yùn)算對(duì)象可以是常量,可以是變量,也可是表達(dá)式。如:3>2 b*b-4*a*c>=1e-6 x= =y a%b!=0關(guān)系表達(dá)式的值: C語(yǔ)言規(guī)定用數(shù)值0代表關(guān)系運(yùn)算結(jié)果為“假”,用數(shù)值1代表關(guān)系運(yùn)算結(jié)果為“真”。關(guān)系表達(dá)式值的數(shù)據(jù)類型為整型。設(shè)有定義 int a=3,b=2,c=1; 則:a>b 的值為1c= =a 的值為0(3)優(yōu)先級(jí)和結(jié)合方向>、>=、<和 < = 的優(yōu)先級(jí)相同;= = 和 !=的優(yōu)先級(jí)相同,兩組運(yùn)

5、算符優(yōu)先級(jí)從高到低的順序是:> >= < <= = = !=關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符。如:a+b>c+d 等價(jià)于 (a+b)>(c+d)關(guān)系運(yùn)算符的結(jié)合方向都為左結(jié)合。如:a>b>c 等價(jià)于 (a>b)>c2、邏輯運(yùn)算符和邏輯表達(dá)式(1)邏輯運(yùn)算符&& 邏輯與| 邏輯或! 邏輯非(2)邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。運(yùn)算對(duì)象一般為關(guān)系表達(dá)式或邏輯量(常量或變量)。如;x>10|x<100 x= =y&&a!=b 5&&b如:3&

6、gt;2&&4>3 的結(jié)果為真3<4|4>5 結(jié)果為真!(3>2) 的結(jié)果為假邏輯表達(dá)式的值:用數(shù)值0代表邏輯運(yùn)算結(jié)果為“假”,用數(shù)值1代表邏輯運(yùn)算結(jié)果為“真”。在判斷一個(gè)量(常量或變量)是“真”還是“假”時(shí),C語(yǔ)言規(guī)定以0代表“假”,以非0代表“真”。3<4&&4>5 的結(jié)果為03<4|4>5 結(jié)果為1!(3>2) 的結(jié)果為0(3)優(yōu)先級(jí)和結(jié)合方向三個(gè)邏輯運(yùn)算符優(yōu)先級(jí)從高到低的順序?yàn)椋海?&& |! 的優(yōu)先級(jí)高于算術(shù)運(yùn)算符。&&和|的優(yōu)先級(jí)低于關(guān)系運(yùn)算符。如:3>2+1

7、&&4<2+1 等價(jià)于 (3>(2+1)&&(4<(2+1)&&和|的結(jié)合方向?yàn)樽蠼Y(jié)合,!的結(jié)合方向?yàn)橛医Y(jié)合。如:a>b&&c>d&&e>f 等價(jià)于 (a>b)&&(c>d)&&(e>f)!(a>b) 等價(jià)于 !(!(!(a>b)3、條件運(yùn)算符及條件表達(dá)式(1)條件運(yùn)算符 ? : C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符。(2)條件表達(dá)式條件表達(dá)式的一般形式為: 表達(dá)式1?表達(dá)式2:表達(dá)式3 其中,表達(dá)式i (1i3)的類型任意,

8、表達(dá)式1一般為關(guān)系表達(dá)式或邏輯表達(dá)式,表達(dá)式2和表達(dá)式3一般為同類型表達(dá)式。條件表達(dá)式的求解過(guò)程是:先求解表達(dá)式1,若表達(dá)式1的值不為0,則求解表達(dá) 式2,表達(dá)式2的值就是條件表達(dá)式的值;若表達(dá)式1的值為0,則求解表達(dá)式3,表達(dá)式3的值就是條件表達(dá)式的值。 如: 3>2?3+2:3*2 表達(dá)式的值為5a>b?3!=0:7= =8 表達(dá)式的值為0(3)優(yōu)先級(jí)和結(jié)合方向 條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,但低于邏輯運(yùn)算符、關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。如:3>2?3+2:3*2 等價(jià)于 (3>2)?(3+2):(3*2)a>b?3!=0:7= =8 等價(jià)于 (a>b)

9、?(3!=0):(7= =8)條件運(yùn)算符的結(jié)合方向?yàn)橛医Y(jié)合。如:注意:·條件表達(dá)式中的表達(dá)式2和表達(dá)式3只有一個(gè)被求解。·表達(dá)式1的類型可與表達(dá)式2和表達(dá)式3的類型不同。三、分支結(jié)構(gòu)表示IF語(yǔ)句在C中條件語(yǔ)句的一般形式為: if(表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2; 執(zhí)行過(guò)程如下:如果表達(dá)式的值為非0(TURE)即真, 則執(zhí)行語(yǔ)句1, 執(zhí)行完語(yǔ)句1從語(yǔ)句2后開(kāi)始繼續(xù)向下執(zhí)行; 如果表達(dá)式的值為0(FALSE)即假, 則跳過(guò)語(yǔ)句1而執(zhí)行語(yǔ)句2。然后程序繼續(xù)往下執(zhí)行。所謂表達(dá)式是指關(guān)系表達(dá)式和邏輯表達(dá)式的結(jié)合式, 關(guān)于表達(dá)式前面已作過(guò)介紹, 這是不再重復(fù)。表達(dá)式真(非0)假(

10、0)語(yǔ) 句 1語(yǔ) 句 2注意:1. 如果語(yǔ)句1或語(yǔ)句2有多于一條語(yǔ)句要執(zhí)行時(shí), 必須使用""和"" 把這些語(yǔ)句包括在其中, 此時(shí)條件語(yǔ)句形式為:if(表達(dá)式)     語(yǔ)句體1; else 語(yǔ)句體2;2. 分支程序的三種形式(1)單分支: 例1輸入一個(gè)整型數(shù),輸出該數(shù)的絕對(duì)值。 main() int a,; scanf("%d",&a); if(a<=0) a=-a; printf("%dn",a); (2)上述是雙分支例2輸入兩個(gè)整型數(shù),將平方值較大者輸出。 main(

11、) int a,b,max; scanf("%d%d",&a,&b); if(a*a>b*b) max=a; else max=b; printf("%5dn",max); (3)多分支if語(yǔ)句是雙分支if語(yǔ)句的一個(gè)擴(kuò)充,其格式為:例3輸入一個(gè)百分制成績(jī),輸出其對(duì)應(yīng)的等級(jí)。(90100為A,8099為B,7079為C,6069為D,059為E)main() int x; char y; scanf("%d",&x); if(x>=90) y=A; else if(x>=80) y=B; els

12、e if(x>=70) y=C; else if(x>=60) y=D; else y=E; printf("y=%cn",y);四If嵌套格式if語(yǔ)句可以嵌套,即在一個(gè)if語(yǔ)句中又可以包含一個(gè)或多個(gè)if語(yǔ)句,一般形式為:if(表達(dá)式1)if(表達(dá)式2) 語(yǔ)句1else 語(yǔ)句2elseif(表達(dá)式3) 語(yǔ)句3else 語(yǔ)句4注意:在缺省花括號(hào)的情況下,if和else的配對(duì)關(guān)系是:從最內(nèi)層開(kāi)始,else總是與它上面最近的并且沒(méi)有和其他else配對(duì)的if配對(duì)。程序員應(yīng)該養(yǎng)成良好的編程習(xí)慣,從書(shū)寫(xiě)格式上,注意if和else的層次關(guān)系,反映if與else的配對(duì)關(guān)系。以便

13、提高程序的維護(hù)和理解。如下if與else的配對(duì)舉例。例4已知函數(shù)y=編寫(xiě)程序,輸入x,輸出y值。main() float x; int y; scanf("%f",&x); if(x>=0) if(x>0) y=1; else y=0; else y=-1; printf("x=%f y=%dn",x,y);使用if 語(yǔ)句時(shí)應(yīng)注意以下幾點(diǎn): if后面圓括號(hào)內(nèi)的表達(dá)式可以為任意類型,但一般為關(guān)系表達(dá)式或邏輯表達(dá)式。 if和else后面的語(yǔ)句可以是任意語(yǔ)句。 if(x)與if(x!=0)等價(jià)。 if(!x)與if(x= =0)等價(jià)。五、舉

14、例說(shuō)明例5:讀入一個(gè)整數(shù),判斷其能否被3整除。#include <stdio.h>main() int a ;printf("Enter an integer “) ;scan("%d",&a) ; /*輸入一個(gè)整數(shù)*/if (a%3= =0) /*判斷能否被3整除并輸出相應(yīng)信息*/printf("%d能被3整除n”,a) ;else printf("%d不能被3整除n”,a) ;例6 從鍵盤(pán)輸入三個(gè)數(shù),求出絕對(duì)值最大者并顯示輸出。分析:可將輸入的三個(gè)數(shù)存放于變量a,b,c中,先用a和b 比較(絕對(duì)值比較),將大數(shù)存放于臨時(shí)

15、變量max中,再用max和c比較,再將大數(shù)存放于max中,這樣進(jìn)行比較之后得到的max一定為a,b,c中絕對(duì)值最大的數(shù)。程序如下:#include <stdio.h>#include math.hmain () float a ,b ,c ;float max ;printf(“Enter 3 numbers n”) ;scanf ("%f , %f , %f ",&a,&b,&c);if (abs(a) > abs (b) max=abs(a) ; else max=abs(b) ;if (max < abs (c)max=abs(c) ; printf("Max=%fn",max) ;例7 輸入三個(gè)整數(shù),按大小順序輸出程序如下:#include <stdio.h>main() int a,b,c,temp ; scanf(“%d,%d,%d”,&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)論