藍(lán)橋杯大賽今年已經(jīng)是第十屆了,本次Scratch組省賽(初級(jí)組)采用的Scratch版本為2.0,答題時(shí)間90分鐘,自帶筆記本必須斷網(wǎng)。12道題選擇題和編程題各半。選擇題均為單選每題20分。編程題每道50分,依據(jù)完成度有步驟分。我們將對(duì)其中的幾道題進(jìn)行解析。
1. 問題描述
此題是編程題第三題:你要參加運(yùn)動(dòng)會(huì),每天都刻苦練習(xí)游泳,并給自己的游泳時(shí)間做了精確的計(jì)時(shí)(本題中的計(jì)時(shí)都按24小時(shí)制計(jì)算),你只要說出自己從a時(shí)b分一直游泳到當(dāng)天的c時(shí)d分,你的小魚教練就能計(jì)算出你這天一共游了多少時(shí)間,你的小魚教練是怎么算出來的呢?
具體要求:
1.程序開始運(yùn)行時(shí),小魚教練詢問游泳開始時(shí)間(分別詢問24小時(shí)制的時(shí)和分)和結(jié)束時(shí)間(分別詢問24小時(shí)制的時(shí)和分)。
2.小魚教練計(jì)算并說出游了多長時(shí)間。但如果你輸入的結(jié)束時(shí)間早于開始時(shí)間,小魚教練就會(huì)說“輸入錯(cuò)誤:結(jié)束時(shí)間早于開始時(shí)間”,程序結(jié)束。
將程序保存到桌面,命名為“3.sb2”。
評(píng)分標(biāo)準(zhǔn):10分,程序運(yùn)行后,能夠詢問開始時(shí)間和結(jié)束時(shí)間(時(shí)和分);
40分,在10分的基礎(chǔ)上,能夠正確計(jì)算出游泳的時(shí)間;
測(cè)試兩種情況,1)結(jié)束時(shí)間的分大于開始時(shí)間的分
2) 結(jié)束時(shí)間的分小于開始時(shí)間的分
50分,在40分的基礎(chǔ)上,如果輸入結(jié)束時(shí)間早于開始時(shí)間,能提示錯(cuò)誤,需要多次以不同情況輸入來驗(yàn)證。
2. 編程思路
根據(jù)題目要求和評(píng)分標(biāo)準(zhǔn)分析,本題需要設(shè)置4個(gè)變量:開始-時(shí),開始-分,結(jié)束-時(shí),結(jié)束-分。并根據(jù)條件判斷進(jìn)行時(shí)間計(jì)算。
要注意對(duì)比開始-時(shí)和結(jié)束-時(shí)的大小時(shí)除了 開始-時(shí)<結(jié)束-時(shí) 的情況外還需要注意考慮 開始-時(shí)=結(jié)束-時(shí) 的情況以及分鐘數(shù)不夠減的情況下如何借位,養(yǎng)成流程圖分析的習(xí)慣可以更好地全面考慮各種情況。
向上借位的計(jì)算,注意當(dāng)開始-分>結(jié)束-分時(shí)不夠減,計(jì)算分鐘時(shí)需要向上借位,結(jié)束-時(shí)-1小時(shí),結(jié)束-分則+60。
結(jié)果輸出,用多個(gè)連接塊把“游泳時(shí)間”+結(jié)束-時(shí)減開始-時(shí)+“小時(shí)”+結(jié)束-分減開始-分+“分鐘”用于結(jié)果輸出。
本題難度4分(最高5分)。
3. 編程實(shí)現(xiàn)
(1)設(shè)置背景underwater2,新造型fish1,程序?qū)懺趂ish1中。
(2)新建4個(gè)變量:開始-時(shí),開始-分,結(jié)束-時(shí),結(jié)束-分。詢問并根據(jù)回答賦值。
(3) 判斷時(shí)間大?。河脳l件判斷比較時(shí)間大小并輸出練習(xí)時(shí)間結(jié)果。
開始-時(shí)>結(jié)束-時(shí),說“輸入錯(cuò)誤,結(jié)束時(shí)間早于開始時(shí)間”。
當(dāng)開始-時(shí)=結(jié)束-時(shí),再對(duì)比開始分和結(jié)束分。開始分<結(jié)束分,報(bào)錯(cuò)。否則說“游泳時(shí)間”+“結(jié)束-時(shí)-開始-時(shí)”+“小時(shí)”+“結(jié)束-分-開始-分”+“分鐘”。
開始-時(shí)<結(jié)束-時(shí)的情況下就注意開始-分>結(jié)束-分需要向上借位,結(jié)束-時(shí)減1,結(jié)束分加60。
(4) 將程序保存,根據(jù)試卷要求命名為“3.sb2”。一定要注意按試卷的要求命名。