第四章-選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)課件_第1頁(yè)
第四章-選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)課件_第2頁(yè)
第四章-選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)課件_第3頁(yè)
第四章-選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)課件_第4頁(yè)
第四章-選擇結(jié)構(gòu)程序設(shè)計(jì)教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章選擇結(jié)構(gòu)程序設(shè)計(jì)關(guān)系表達(dá)式和邏輯表達(dá)式用行IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)用塊IF實(shí)現(xiàn)選擇多分支選擇結(jié)構(gòu)多分支轉(zhuǎn)移語句選擇結(jié)構(gòu)程序設(shè)計(jì)2020/12/111問題的提出在實(shí)際問題中,要求計(jì)算機(jī)進(jìn)行邏輯判斷,即給出一個(gè)條件,讓計(jì)算機(jī)判斷是否滿足條件,并按照判斷的結(jié)果來做不同的處理。從鍵盤輸入一個(gè)數(shù),如果是正數(shù)則打印出來,否則不做任何處理;將學(xué)生中成績(jī)不合格者打印出來;將職工工資低于300元者打印出來;根判別式b2-4ac<0,則終止程序執(zhí)行,否則求解。2020/12/112關(guān)系運(yùn)算符關(guān)系運(yùn)算符含義相當(dāng)于數(shù)學(xué)符號(hào)舉例>大于>a>b<小于<x<y=等于=c=d>=大于等于≥e>=-1<=小于等于≤h<=I<>不等于≠u<>v2020/12/113關(guān)系表達(dá)式用一個(gè)關(guān)系運(yùn)算符把兩個(gè)運(yùn)算量(數(shù)值量或字符串)聯(lián)結(jié)起來稱關(guān)系表達(dá)式;每個(gè)關(guān)系表達(dá)式都有一個(gè)值,這個(gè)值稱作邏輯值(即“真”或“假”);在QBASIC中,如果表達(dá)式不成立,即“假”,則此表達(dá)式的值為“0”,否則為“-1”;舉例:PRINT15>13,13>15運(yùn)行結(jié)果:-102020/12/114邏輯運(yùn)算符問題的提出:如果需要判斷一個(gè)數(shù)是否滿足0≤x≤10,語句IF0=<x<=10THEN語句1ELSE語句2是錯(cuò)誤的,因?yàn)樵赒B中只能使用簡(jiǎn)單的關(guān)系表達(dá)式。IFx>=0ANDx<=10THEN語句1ELSE語句2(正確)QB的邏輯運(yùn)算符:

AND(與):所聯(lián)結(jié)的關(guān)系表達(dá)式必須同時(shí)成立才為真;

OR(或):所聯(lián)結(jié)的關(guān)系表達(dá)式只要有一個(gè)為真,即為真;

NOT(非):將原來的邏輯值取反。2020/12/115邏輯運(yùn)算符的運(yùn)算規(guī)則ABAANDBAORBNOTANOTB真真真真假假真假假真假真假真假真真假假假假假真真2020/12/116邏輯表達(dá)式的預(yù)算次序一個(gè)邏輯表達(dá)式一般包括邏輯運(yùn)算符、關(guān)系表達(dá)式或其他運(yùn)算量;算術(shù)運(yùn)算→關(guān)系運(yùn)算→邏輯運(yùn)算(NOT→AND→OR)如以下表達(dá)式,其中a=5,b=3,c=-2,d=8a-c>b+dORc>dANDABS(c)=aORNOTc>d+57>11ORc>dAND2=aORNOTc>13假OR假AND假ORNOT假假OR假OR真真2020/12/117IF語句語法:IF關(guān)系表達(dá)式THEN語句1[ELSE語句2]在IF語句中,實(shí)際是判別關(guān)系表達(dá)式的邏輯值是零還是非零。如果是非零(即條件成立),則執(zhí)行THEN后的語句,否則執(zhí)行ELSE后的語句(有ELSE語句?。F5>3THENPRINT“Thisistrue.”ELSEPRINT“Thisisfalse”IF3>5THENPRINT“Thisistrue.”ELSEPRINT“Thisisfalse”IF2THENPRINT“Thisistrue.”ELSEPRINT“Thisisfalse”IF0THENPRINT“Thisistrue.”ELSEPRINT“Thisisfalse”表達(dá)式的邏輯值可以賦值給變量:x=5>3x=5=32020/12/118用行IF語句實(shí)現(xiàn)選擇結(jié)構(gòu)行IF語句有二種形式:(1)IF條件THEN語句例如:IFx>0THENPRINTx(2)IF條件THEN語句1ELSE語句2例如:IFx>0THENPRINTxELSEPRINT–x一般形式:IF條件THEN語句1[ELSE語句2]求解一元二次方程ax2+bx+c=0(參見SAMP4-2.BAS)輸入a,b,cd=b2-4acp=-b/2ad≥0是否x1=p+qx2=p-qx1=p+q”i”x2=p-q”i”2020/12/119選擇結(jié)構(gòu)的嵌套在一個(gè)選擇結(jié)構(gòu)中包含另外一個(gè)選擇結(jié)構(gòu),就稱為選擇結(jié)構(gòu)的嵌套y=0(x=0)1(x>0)-1(x<0)舉例:輸入xx>0是否y=1x=0是否y=0y=-1INPUT“Pleaseinputx”IFx>0THENy=1ELSEIFx=0THENy=0ELSEy=-1PRINT“y=“;y:END

2020/12/1110對(duì)選擇結(jié)構(gòu)的嵌套的理解選擇結(jié)構(gòu)的嵌套實(shí)際上是把一個(gè)IF結(jié)構(gòu)的語句作為它外層IF結(jié)構(gòu)的THEN或ELSE子句中應(yīng)該執(zhí)行的語句。對(duì)比:IF邏輯表達(dá)式THEN語句1ELSE語句2IFx>0THENy=1ELSEIFx=0THENy=0ELSEy=-1IFx>=0THENIFx>0THENy=1ELSEy=0ELSEy=-1內(nèi)層IF-ELSE外層IF-ELSEIFx>=0THENIFx>0THENy=1ELSEy=-1IFx>=0THENIFx>0THENy=1ELSEy=-1內(nèi)層IF-ELSEIFx>=0THENIFx>0THENy=1ELSEy=-1內(nèi)層IF-ELSE√規(guī)定:ELSE與離它最近的IF配對(duì)2020/12/1111關(guān)于選擇結(jié)構(gòu)嵌套的兩點(diǎn)說明將內(nèi)層的THEN子句和ELSE子句寫全,即使不需要ELSE子句,也應(yīng)寫上ELSE子句,后面不跟任何語句。內(nèi)層IF-ELSE外層IF-ELSEIFx>=0THENIFx>0THENy=1

ELSEELSEy=-1盡量將內(nèi)嵌的IF結(jié)構(gòu)放在外層IF的ELSE子句中,而不放在THEN子句中,由于內(nèi)層IF出現(xiàn)在外層IF的ELSE子句中,內(nèi)層的ELSE只能與其前面的IF配對(duì),而IF是在外層的ELSE右邊,由于有外層IF的ELSE隔開,所以內(nèi)層的ELSE絕不會(huì)越過外層的ELSE與外層的IF配對(duì)。IFx>0THENy=1ELSEIFx=0THENy=0ELSEy=-1內(nèi)層IF-ELSE外層IF-ELSE2020/12/1112利用塊IF實(shí)現(xiàn)選擇結(jié)構(gòu)語法:IF條件THEN

語句組1ELSE

語句組2ENDIFy=0(x=0)1(x>0)-1(x<0)舉例:INPUT“Pleaseinputx:”;xIFx>0y=1ELSE

IFx=0y=0

ELSEy=-1

ENDIFENDIFPRINT“x=”;x,”y=”;yEND2020/12/1113塊IF實(shí)現(xiàn)選擇結(jié)構(gòu)舉例舉例(P108,sam4-6.bas):d=0.05(250≤m<500)0(m<250)0.075(500≤m<1000)0.1(1000≤m<2000)0.15(2000≤m)2020/12/1114ELSEIF語句實(shí)現(xiàn)選擇結(jié)構(gòu)語法:IF條件THEN

語句組1ELSEIF條件2THEN

語句組2ELSEIF條件2THEN

語句組3……..ELSEIF條件2THEN

語句組nELSE

語句組n+1

ENDIFINPUT“Pleaseinputyourmoneyforbuying:”,mIFm<250THENd=0ELSEIFm<500THENd=0.05ELSEIFm<1000THENd=0.075ELSEIFm<2000THENd=0.1ELSEd=0.15ENDIamout=m*(1-d)PRINT“amount=”;amountEND2020/12/1115基本要求掌握邏輯運(yùn)算的基本概念掌握行IF語句和塊IF結(jié)構(gòu)的使用2020/12/1116多分支選擇結(jié)構(gòu)(SELECTCASE結(jié)構(gòu))語法:SELECTCASE表達(dá)式

CASE條件1

語句組1CASE條件2

語句組2……CASEELSE

語句組nENDSELECTy=0(x=0)1(x>0)-1(x<0)舉例:INPUT“Pleaseenterx:”,xSELECASExCASEIS>0y=1CASEIS=0y=0CASEIS<0y=-1ENDSELECTPRINT“x=”;x,”y=”;yEND2020/12/1117SELECTCASE結(jié)構(gòu)舉例有一筆款欲存銀行,三年后取出,可以采取幾種方案之一:活期3年;3次一年定息(每年到期后取出,在重新存入);先存一次2年定期,在存一次1年定期;先存一次1年定期,在存一次2年定期;3年定期。假設(shè)存款年利率為: 活期:1.5% 1年期:4% 2年期:4.5% 3年期:5.1%求本、利和的公式:p=p0*(1+r)n(其中:r為年利率,n為存款年數(shù))(參見samp4-9.bas)2020/12/1118關(guān)于SELECTCASE結(jié)構(gòu)的幾點(diǎn)說明(I)SELECTCASE行后的表達(dá)式稱“CASE表達(dá)式”,又可稱“測(cè)試表達(dá)式”,它可以是一個(gè)變量或表達(dá)式,如a+b,sin(x)CASE后的條件有如下三種形式:常量;用“TO”指定一個(gè)范圍,如3 TO4,8TO23;用“IS”指定一個(gè)條件,其一般形式為:IS<關(guān)系運(yùn)算符><表達(dá)式>,當(dāng)“條件”為一個(gè)關(guān)系條件時(shí),不能包含邏輯運(yùn)算符,如IS<6(正確),ISNOT<6(錯(cuò)誤,不能包含邏輯運(yùn)算符)??梢栽谝粋€(gè)CASE中使用多個(gè)條件,多個(gè)條件時(shí),各個(gè)條件之間的關(guān)系是“邏輯或”的關(guān)系,如CASE1,3,5,7CASE1TO5,8TO10,IS>100CASEIS>=0,IS<=100(各個(gè)條件之間的關(guān)系是“邏輯或”的關(guān)系,所以-∞<x<∞)2020/12/1119關(guān)于SELECTCASE結(jié)構(gòu)的幾點(diǎn)說明(II)不同CASE子句中的“條件”不應(yīng)當(dāng)重復(fù),重復(fù)雖然不會(huì)報(bào)告錯(cuò)誤,只是出現(xiàn)操作上的矛盾,例如:

SELECTCASEa CASE1,2,3 PRINT“1-3” CASEIS>0 PRINT“>0” CASE2TO10 PRINT“2-10”ENDSELECT除了CASEELSE

子句外,其他CASE子句的順序?qū)?zhí)行結(jié)果沒有影響,如果把CASEELSE子句放在最前,則首先執(zhí)行的是CASEELSE子句,而認(rèn)為前面的CASE子句均不符合條件,例如:

SELECTCASEINT(m) CASEELSE d=0.15 CASEIS<250 d=0 CASE250TO499 d=0.05ENDSELECT2020/12/1120多分支轉(zhuǎn)移語句(ONGOTO

語句)語法:ON算術(shù)表達(dá)式GOTO行號(hào)或行標(biāo)號(hào)1,行號(hào)或行標(biāo)號(hào)2,行號(hào)或行標(biāo)號(hào)3……

例如:ONxGOTOa,b,c,d當(dāng)x=1時(shí),執(zhí)行行標(biāo)號(hào)為a的語句行;當(dāng)x=2時(shí),執(zhí)行行標(biāo)號(hào)為b的語句行;當(dāng)x=3時(shí),執(zhí)行行標(biāo)號(hào)為c的語句行;當(dāng)x=4時(shí),執(zhí)行行標(biāo)號(hào)為d的語句行。y=0(x=0)1(x>0)-1(x<0)舉例:INPUT“Enterx:”,xs=SGN(x)ONs+2GOTOa,b,ca:y=-1:GOTOdb:y=0:GOTOdc:y=1:GOTOdd:PRINT“x=”;x,”y=”;yEND2020/12/1121選擇結(jié)構(gòu)程序設(shè)計(jì)舉例例1:輸入一個(gè)年份(例如1999),要求判斷它是否是閏年。

分析: 判斷閏年的條件是:能被4整除但不能被100整除的是閏年,如1992年;能被4整除又能被400整除的是閏年,如2000年;其他為非閏年。

(參見:s4-11-1.bas,s4-11-2.bas,s4-11-3.bas,s4-11-4.bas)2020/12/1122INPUT"Pleaseinputyear:";yearPRINTyear;"is";IF(yearMOD4=0ANDyearMOD100<>0)ORyearMOD400=0THENPRINT"aleapyear!"ELSEPRINT"NOTaleapyear!"ENDs4-11-1.bas用行IF語句實(shí)現(xiàn)選擇2020/12/1123

s4-11-2.bas用塊IF結(jié)構(gòu)實(shí)現(xiàn)選擇INPUT"Pleaseinputyear:";yearPRINTyear;"is";IF(yearMOD4=0ANDyearMOD100<>0)ORyearMOD400=0THENPRINT"aleapyear!"ELSEPRINT"NOTaleapyear!"ENDIFEND2020/12/1124s4-11-3.bas逐個(gè)條件判斷INPUT"Pleaseinputyear:";yearIFyearMOD4=0THENIFyearMOD100=0THEN

IFyearMOD400=0THENleap=1ELSEleap=0ENDIFELSEleap=1ENDIFELSEleap=0ENDIFIFleap=1THENPRINTyear;"isaleapyear!"ELSEPRINTyear;"isNOTaleapyear!"ENDIFEND2020/12/1125s4-11-4.bas在塊IF結(jié)構(gòu)使用ELSEIF語句實(shí)現(xiàn)選擇INPUT"Pleaseinputyear:";yearIFyearMOD4<>0THENleap=0ELSEIFyearMOD100<>0THENleap=1ELSEIFyearMOD400=0THENleap=1ELSEleap=0ENDIFIFleap=1THENPRINTyear;"isaleapyear!"ELSEPRINTyear;"isNOTaleapyear!"ENDIFEND2020/12/1126選擇結(jié)構(gòu)程序設(shè)計(jì)舉例例2有一城市,規(guī)劃建設(shè)1個(gè)中心城和4個(gè)衛(wèi)星城。中心城的邊長(zhǎng)20公里,衛(wèi)星城邊長(zhǎng)為5公里,均為正方形,中心城的地價(jià)為每公頃10萬,衛(wèi)星城為5萬,其他地區(qū)1萬。編程序,輸入任意一點(diǎn)的位置,確定該點(diǎn)的地價(jià)。-10-20ⅡⅠⅣⅢ-202020-101010中心城的范圍:|x|≤10AND|y|≤10衛(wèi)星城的范圍:20≤|x|≤25AND20≤|y|≤252020/12/1127s4-12-1.bas在塊IF結(jié)構(gòu)使用ELSEIF語句實(shí)現(xiàn)選擇INPUT"Pleaseinputyourcoordinate:";x,yIFABS(x)<=10ANDABS(y)<=10THENprice=10ELSEIF(ABS(x)>=20ANDABS(x)<=25)AND(ABS(y)>=20ANDABS(y)<=25)THENprice=5ELSEprice=1ENDIFPRINT"Price=";priceEND2020/12/1128s4-12-2.bas用3個(gè)行IF語句實(shí)現(xiàn)選擇INPUT"Pleaseinputyourcoordinate:";x,yIFABS(x)<=10ANDABS(y)<=10THENprice=10IF(ABS(x)>=20ANDABS(x)<=25)AND(ABS(y)>=20ANDABS(y)<=25)THENprice=5IFNOT(ABS(x)<=10ANDABS(y)<=10)ANDNOT(ABS(x)>=20ANDABS(x)<=25ANDABS(y)>=20ANDABS(y)<=25)THENprice=1PRINT"Price=";priceEND2020/12/1129s4-12-3.bas用2個(gè)行IF語句實(shí)現(xiàn)選擇INPUT"Pleaseinputyourcoordinate:";x,yprice=1IFABS(x)<=10ANDABS(y)<=10THENprice=10IFABS(x)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論