《《選擇結(jié)構(gòu) 》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《選擇結(jié)構(gòu) 》PPT課件(14頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 四 講 選 擇 結(jié) 構(gòu) 主 講 人 : 張 志 剛 IF語(yǔ)句的一般格式是:IF條件THEN語(yǔ)句1條件為真時(shí)的響應(yīng)、處理ELSE語(yǔ)句2;條件為假時(shí)的響應(yīng)、處理?yè)?dān)待4.1IF語(yǔ)句 使用條件語(yǔ)句時(shí)要注意:1、條件語(yǔ)句是一個(gè)語(yǔ)句。IF、THEN、ELSE都是語(yǔ)句的一個(gè)部分。所以它只能有一個(gè)“;”作為分隔符,放在句子的結(jié)束,特別要注意不能放在ELSE之前。2、如果我們的程序只需對(duì)條件為真的情況作出處理,不需要處理?xiàng)l件為假的情況,則IF語(yǔ)句省略ELSE分句,格式變成:IF條件THEN語(yǔ)句1;條件為真時(shí)的響應(yīng)、處理如:如果數(shù)a大于等于0則輸出它的平方根。ifa=0thenwriteln(sqrt(a);
2、對(duì)以上的例子,條件為假時(shí)不需處理,于是我們干脆省去ELSE分句。 3、if語(yǔ)句可以多層嵌套。嵌套時(shí)為了避免誤解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:IF條件THENBEGINif條件1thenelse;ENDELSEBEGINif條件2thenelse;end; 例1、輸入兩個(gè)數(shù)a,b,輸出較大的數(shù)。program tt;var a,b:integer;begin write(please input a,b:); readln(a,b); if ab then writeln(a) else writeln(b);end. 4.2CASE語(yǔ)句 分情況語(yǔ)
3、句適用于對(duì)一個(gè)條件的多種情況的響應(yīng)。 格式:case 表達(dá)式 of 標(biāo)號(hào)1:語(yǔ)句1; 標(biāo)號(hào)2:語(yǔ)句2; 標(biāo)號(hào)n:語(yǔ)句n; else 語(yǔ)句n+1end; case語(yǔ)句在使用時(shí)有幾點(diǎn)要注意:1.end與case對(duì)應(yīng);標(biāo)號(hào)與語(yǔ)句之間用“:”分隔;else與語(yǔ)句之間不用分隔符。2.標(biāo)號(hào)必須是一常量,其類型與表達(dá)式的類型一致 例題:某全自動(dòng)加油站a,b,c三種汽油的單價(jià)(元/kg)分別是1.50、1.35和1.18,也提供了“自己加”或“協(xié)助加”兩個(gè)服務(wù)等級(jí),這樣用戶可以得到5%或10%的優(yōu)惠。編一個(gè)程序,用戶輸入加油量、汽油品種和服務(wù)類型(f-自動(dòng),m-自己,e-協(xié)助),然后計(jì)算應(yīng)付款。 progra
4、m pcase1;var oil,help:char; kg,total:real;begin write(Enter the amount in kilograms(kg):); readln(kg); write(Which type of the gasoline(a,b,c):); readln(oil); wirte(Which type for service(f,m,e):); readln(help); case oil of a: total:=1.50*kg; b: total:=1.35*kg; c: total:=1.18*kg; else writeln(Input
5、Error!) end;處理汽油的類型 case help of f:; m: total:=total*(1-0.05); e: total:=total*(1-0.10); else writeln(Input Error!) end;處理服務(wù)類型 writeln; writeln(Total is ,total:10:2);end. 例題:從鍵盤上讀入年和月,輸出該月有多少天。 programpcase2;varyear,month,day:integer;runnian:boolean;beginwrite(Enteryearandmonth:);readln(year,month);
6、casemonthof1,3,5,7,8,10,12:day:=31;4,6,9,11:day:=30;以上處理31天和30天的情況2:beginrunnian:=(yearmod400=0)or(yearmod4=0)and(yearmod1000);caserunnianoftrue:day:=28;false:day:=29;end; end;以上處理2月的情況:閏年28天,平年29天end;end. var a:real;begina:=15/8;writeln(a);writeln(a:0:2);writeln(a:0:0);end. 輸出 1.8750000000E+00輸出 1.
7、88 整數(shù)部分按實(shí)際位數(shù)輸出,小數(shù)部分保留兩位小數(shù),末位四舍五入.輸出 2 只輸出整數(shù)部分,小數(shù)部分四舍五入 練習(xí):1、從鍵盤上讀入長(zhǎng)方形的邊長(zhǎng)a,b,計(jì)算它的面積和周長(zhǎng),輸出。 2、 輸入一個(gè)時(shí)、分、秒,把它轉(zhuǎn)換為一個(gè)秒數(shù)。 3、 從鍵盤讀入一個(gè)數(shù),判斷它的正負(fù)。是正數(shù),則輸出+,是負(fù)數(shù),則輸出-。 4、 輸入兩個(gè)數(shù)a,b,輸出較大數(shù)的平方值。 5、 鐵路托運(yùn)行李規(guī)定:行李重不超過(guò)50公斤的,托運(yùn)費(fèi)按每公斤0.15元計(jì)費(fèi);如超50公斤,超過(guò)部分每公斤加收0.10元。編一程序完成自動(dòng)計(jì)費(fèi)工作。 6、 某超市為了促銷,規(guī)定:購(gòu)物不足50元的按原價(jià)付款,超過(guò)50不足100的按九折付款,超過(guò)100元
8、的,超過(guò)部分按八折付款。編一程序完成超市的自動(dòng)計(jì)費(fèi)的工作。 7、 輸入a,b,c三個(gè)不同的數(shù),將它們按由小到大的順序輸出。 13、 當(dāng)前小學(xué)生的成績(jī)單由以前的百分制改為優(yōu)秀、良好、合格、不合格四個(gè)等級(jí)的等級(jí)制。編一程序完成分?jǐn)?shù)的自動(dòng)轉(zhuǎn)換工作。轉(zhuǎn)換規(guī)則如下:60分以下的為不合格;60到69分為合格;70到89分為良好;90分以上的為優(yōu)秀。(提示:可以利用DIV運(yùn)算來(lái)使程序更 簡(jiǎn)明) 8、 打印某年某月有多少天。(提示:A、閏年的計(jì)算方法:年數(shù)能被4整除,并且不能被100整除;或者能被400整除的整數(shù)年份。B、利用MOD運(yùn)算可以判斷一個(gè)數(shù)能否被另一個(gè)數(shù)整除) 9、編程模擬剪刀、石頭、布游戲:用S表示剪刀,用R表示石頭,用P表示布。規(guī)則是:剪刀剪布,石頭砸剪刀,布包石頭。游戲者分別把自己的選擇輸入,計(jì)算機(jī)給出結(jié)果。 家庭作業(yè)v完成選擇結(jié)構(gòu)的練習(xí)v預(yù)習(xí)循環(huán)結(jié)構(gòu)