《《選擇結(jié)構(gòu) 》PPT課件》由會員分享,可在線閱讀,更多相關《《選擇結(jié)構(gòu) 》PPT課件(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第 四 講 選 擇 結(jié) 構(gòu) 主 講 人 : 張 志 剛 IF語句的一般格式是:IF條件THEN語句1條件為真時的響應、處理ELSE語句2;條件為假時的響應、處理擔待4.1IF語句 使用條件語句時要注意:1、條件語句是一個語句。IF、THEN、ELSE都是語句的一個部分。所以它只能有一個“;”作為分隔符,放在句子的結(jié)束,特別要注意不能放在ELSE之前。2、如果我們的程序只需對條件為真的情況作出處理,不需要處理條件為假的情況,則IF語句省略ELSE分句,格式變成:IF條件THEN語句1;條件為真時的響應、處理如:如果數(shù)a大于等于0則輸出它的平方根。ifa=0thenwriteln(sqrt(a);
2、對以上的例子,條件為假時不需處理,于是我們干脆省去ELSE分句。 3、if語句可以多層嵌套。嵌套時為了避免誤解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:IF條件THENBEGINif條件1thenelse;ENDELSEBEGINif條件2thenelse;end; 例1、輸入兩個數(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語句 分情況語
3、句適用于對一個條件的多種情況的響應。 格式:case 表達式 of 標號1:語句1; 標號2:語句2; 標號n:語句n; else 語句n+1end; case語句在使用時有幾點要注意:1.end與case對應;標號與語句之間用“:”分隔;else與語句之間不用分隔符。2.標號必須是一常量,其類型與表達式的類型一致 例題:某全自動加油站a,b,c三種汽油的單價(元/kg)分別是1.50、1.35和1.18,也提供了“自己加”或“協(xié)助加”兩個服務等級,這樣用戶可以得到5%或10%的優(yōu)惠。編一個程序,用戶輸入加油量、汽油品種和服務類型(f-自動,m-自己,e-協(xié)助),然后計算應付款。 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;處理服務類型 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ù),末位四舍五入.輸出 2 只輸出整數(shù)部分,小數(shù)部分四舍五入 練習:1、從鍵盤上讀入長方形的邊長a,b,計算它的面積和周長,輸出。 2、 輸入一個時、分、秒,把它轉(zhuǎn)換為一個秒數(shù)。 3、 從鍵盤讀入一個數(shù),判斷它的正負。是正數(shù),則輸出+,是負數(shù),則輸出-。 4、 輸入兩個數(shù)a,b,輸出較大數(shù)的平方值。 5、 鐵路托運行李規(guī)定:行李重不超過50公斤的,托運費按每公斤0.15元計費;如超50公斤,超過部分每公斤加收0.10元。編一程序完成自動計費工作。 6、 某超市為了促銷,規(guī)定:購物不足50元的按原價付款,超過50不足100的按九折付款,超過100元
8、的,超過部分按八折付款。編一程序完成超市的自動計費的工作。 7、 輸入a,b,c三個不同的數(shù),將它們按由小到大的順序輸出。 13、 當前小學生的成績單由以前的百分制改為優(yōu)秀、良好、合格、不合格四個等級的等級制。編一程序完成分數(shù)的自動轉(zhuǎn)換工作。轉(zhuǎn)換規(guī)則如下:60分以下的為不合格;60到69分為合格;70到89分為良好;90分以上的為優(yōu)秀。(提示:可以利用DIV運算來使程序更 簡明) 8、 打印某年某月有多少天。(提示:A、閏年的計算方法:年數(shù)能被4整除,并且不能被100整除;或者能被400整除的整數(shù)年份。B、利用MOD運算可以判斷一個數(shù)能否被另一個數(shù)整除) 9、編程模擬剪刀、石頭、布游戲:用S表示剪刀,用R表示石頭,用P表示布。規(guī)則是:剪刀剪布,石頭砸剪刀,布包石頭。游戲者分別把自己的選擇輸入,計算機給出結(jié)果。 家庭作業(yè)v完成選擇結(jié)構(gòu)的練習v預習循環(huán)結(jié)構(gòu)