(一)改錯題
輸出三角形的面積和周長,輸入三角形的三條邊a、b、c,如果能構成一個三角形,輸出面積area和周長perimeter(保留2位小數);否則,輸出“These sides do not correspond to a valid triangle”。
源程序(有錯誤的程序)
錯誤一
錯誤原因:缺少括號,不能結對
改正方法:增加括號,使括號結對
錯誤二
錯誤原因:if與else中的語句沒有加花括號
改正方法:增加大括號
錯誤三
錯誤原因:根據題意要求,本題if語句中應該用且的關系,而不是或
改正方法:將if語句中的符號改為&&
測試數據及運行結果:
輸入5 5 3
輸入1 4 1
運行結果,測試數據正確
(二)學習總結
1.在編程解決問題的過程中,我們會用到多個if語句,if...else if... 語句以及switch語句,查閱資料,總結一下這三種情況的區別何在,並分別舉例加以說明。禁止大段復制,要自己對資料進行歸納總結,並給出你參考的資料鏈接。
if語句的使用方法比較多,可以只是用if一個條件,也可以使用二分支結構if-else語句,當條件比較多的時候,還可以使用多分支結構和else-if語句,所以使用的方法比較多,適用面也就更廣。if語句適用范圍比較簡單,而else if語句則能夠表達更多的選擇條件。使用if else語句的時候,一定要注意條件間的的對應問題,以及選擇語句括號中的符號用法,極易出錯。而當程序比較復雜的時候,就會出現多個if else嵌套的情況,會使程序可讀性很差,而且極易出錯。這時我們就要借助switch語句,一個專門用於處理多分支結構的條件選擇語句,switch又稱為開關語句,與case搭配,並且結尾加上break語句會使程序跳出switch語句,當然,使用switch語句的時候一定要考慮語句的格式與正確寫法。
2.對其他你認為需要進行總結的內容進行總結
要注意switch語句的使用格式,開關語句具有穿透性,注意break的合理使用。有些情況下也會利用開關語句的穿透性簡單的解決問題。同樣要注意default后並不需要break,並且default語句並不是編程序時一定需要的,所以一定要加強對switch語句的聯系,熟練掌握。
(三)實驗總結
1.成績轉換
(1)題目:本題要求編寫程序將一個百分制成績轉換為五分制成績。轉換規則:
• 大於等於90分為A;
• 小於90且大於等於80為B;
• 小於80且大於等於70為C;
• 小於70且大於等於60為D;
• 小於60為E。
(2)源程序:
(3)流程圖
(4)實驗分析
問題:利用變量等效替代的時候出現了問題
解決方法:在草稿紙上畫出流程圖,理清思路,解決了問題
(5)本題PTA提交列表
- 高速公路超速處罰
(1)題目:按照規定,在高速公路上行使的機動車,超出本車道限速的10%則處200元罰款;若超出50%,就要吊銷駕駛證。請編寫程序根據車速和限速自動判別對該機動車的處理。
(2)源程序
(3)流程圖
(4)實驗分析
問題:輸出時出現錯誤,結果正好與正確答案相反
解決辦法:將出現問題的語句修改,將輸出語句的變量的順序更換。
(5)本題PTA提交列表
3.計算油費問題
(1)題目:現在90號汽油6.95元/升、93號汽油7.44元/升、97號汽油7.93元/升。為吸引顧客,某自動加油站推出了“自助服務”和“協助服務”兩個服務等級,分別可得到5%和3%的折扣。
本題要求編寫程序,根據輸入顧客的加油量a,汽油品種b(90、93或97)和服務類型c(m - 自助,e - 協助),計算並輸出應付款。
(2)源程序:
(3)流程圖
(4)實驗分析
問題:框圖邏輯出現混亂
解決辦法:和同學經過討論,改正框圖
(5)本題PTA提交列表
4.12-24小時制轉化問題
(1)題目:編寫一個程序,要求用戶輸入24小時制的時間,然后顯示12小時制的時間。
(2)源代碼:
(3)流程圖:
(4)實驗分析
問題:0點的轉化遇到問題
解決方法:將時間減去12小時,即可解決0點屬於那一天的問題
(5)本題PTA提交列表
(四)博客互評
1.許天笑:http://www.cnblogs.com/snxtx/p/7763856.html