陳新龍
前段時間浙江大部分地區疫情反彈,小陳老師所在的寧波市要求居民做核酸檢測,當前疫情在各地時有反彈,大家一定要及時接種疫苗,出門戴好口罩,做好防護措施。
今天就和大家分享一道Scratch市賽題——新冠疫苗接種系統:根據國家最新的防疫政策,年滿三歲的小朋友均需要接種新冠疫苗,現某幼兒園托管班有學生數名,出生日期分別為:20191016、20171220、20181206、20201001等(八位數字分別代表年月日),請編寫一套疫苗接種系統幫助幼兒園篩選出符合接種條件的小朋友。
分析題目的要求,這個疫苗接種系統的基礎功能其實是根據生日判斷年齡是否符合要求,而非我們根據題目以為的數據管理系統。
首先保留小貓角色,設置一個好看的背景,其次設置名為“當前日期”的變量用來獲取當前真實時間,如果月份和日期不足兩位數時用0來填充,保證當前日期的數字長度為八位數。建立名為“出生日期”的列表,用于記錄幼兒園小朋友的出生日期。
運行程序后,初始化列表,在列表中加入小朋友們的出生日期:20191016、20171220、20181206、20201001。
當用戶按下空格鍵時,小貓按照次序說出每個小朋友是否符合疫苗接種的條件,如:第幾個小朋友符合疫苗接種條件或第幾個小朋友不符合疫苗接種條件即可。
打開Scratch軟件編寫程序時,先創建變量“當前日期”和列表“出生日期”將小朋友日期加入列表中。當前日期的時間通過偵測中的代碼“當前時間的年/月/日”控制,由于年份本身就是四位數所以不需要任何判斷,月份和日期需要根據字符數進行判斷,當月份和日期字符數長度等于1時,通過連接的方式在月份和日期數字前補充數字0即可。

其實本道題目最難的一個關鍵在于如何判斷小朋友年齡是否大于三歲,可能不少同學會去考慮當前日期減去出生日期的方法計算出天數的多少,看天數是否大于3*365天,但是每個月的日期不同,計算起來有一定難度,導致他們停下了腳步。其實可以換一個思路,例如當前日期是2022年3月15日,那么三年前的日期就是2019年3月15日,因為8位數中年的最后一位剛好是萬位,我們只需要將當前日期減30000,得到三年前的日期即可。如果計算出的數值小于三年前的日期說明該小朋友符合接種疫苗的標準可接種疫苗,否則的話該小朋友不符合接種疫苗的標準不能接種疫苗。問題也就迎刃而解了。

沒有一個冬天不能逾越,沒有一個春天不會到來,只要我們能堅守法治、道德和文明的底線,打贏這場攻堅戰,待到春暖花開時疫情終將消散,黎明就在不遠處。