陳新龍
前段時(shí)間浙江大部分地區(qū)疫情反彈,小陳老師所在的寧波市要求居民做核酸檢測,當(dāng)前疫情在各地時(shí)有反彈,大家一定要及時(shí)接種疫苗,出門戴好口罩,做好防護(hù)措施。
今天就和大家分享一道Scratch市賽題——新冠疫苗接種系統(tǒng):根據(jù)國家最新的防疫政策,年滿三歲的小朋友均需要接種新冠疫苗,現(xiàn)某幼兒園托管班有學(xué)生數(shù)名,出生日期分別為:20191016、20171220、20181206、20201001等(八位數(shù)字分別代表年月日),請(qǐng)編寫一套疫苗接種系統(tǒng)幫助幼兒園篩選出符合接種條件的小朋友。
分析題目的要求,這個(gè)疫苗接種系統(tǒng)的基礎(chǔ)功能其實(shí)是根據(jù)生日判斷年齡是否符合要求,而非我們根據(jù)題目以為的數(shù)據(jù)管理系統(tǒng)。
首先保留小貓角色,設(shè)置一個(gè)好看的背景,其次設(shè)置名為“當(dāng)前日期”的變量用來獲取當(dāng)前真實(shí)時(shí)間,如果月份和日期不足兩位數(shù)時(shí)用0來填充,保證當(dāng)前日期的數(shù)字長度為八位數(shù)。建立名為“出生日期”的列表,用于記錄幼兒園小朋友的出生日期。
運(yùn)行程序后,初始化列表,在列表中加入小朋友們的出生日期:20191016、20171220、20181206、20201001。
當(dāng)用戶按下空格鍵時(shí),小貓按照次序說出每個(gè)小朋友是否符合疫苗接種的條件,如:第幾個(gè)小朋友符合疫苗接種條件或第幾個(gè)小朋友不符合疫苗接種條件即可。
打開Scratch軟件編寫程序時(shí),先創(chuàng)建變量“當(dāng)前日期”和列表“出生日期”將小朋友日期加入列表中。當(dāng)前日期的時(shí)間通過偵測中的代碼“當(dāng)前時(shí)間的年/月/日”控制,由于年份本身就是四位數(shù)所以不需要任何判斷,月份和日期需要根據(jù)字符數(shù)進(jìn)行判斷,當(dāng)月份和日期字符數(shù)長度等于1時(shí),通過連接的方式在月份和日期數(shù)字前補(bǔ)充數(shù)字0即可。
其實(shí)本道題目最難的一個(gè)關(guān)鍵在于如何判斷小朋友年齡是否大于三歲,可能不少同學(xué)會(huì)去考慮當(dāng)前日期減去出生日期的方法計(jì)算出天數(shù)的多少,看天數(shù)是否大于3*365天,但是每個(gè)月的日期不同,計(jì)算起來有一定難度,導(dǎo)致他們停下了腳步。其實(shí)可以換一個(gè)思路,例如當(dāng)前日期是2022年3月15日,那么三年前的日期就是2019年3月15日,因?yàn)?位數(shù)中年的最后一位剛好是萬位,我們只需要將當(dāng)前日期減30000,得到三年前的日期即可。如果計(jì)算出的數(shù)值小于三年前的日期說明該小朋友符合接種疫苗的標(biāo)準(zhǔn)可接種疫苗,否則的話該小朋友不符合接種疫苗的標(biāo)準(zhǔn)不能接種疫苗。問題也就迎刃而解了。
沒有一個(gè)冬天不能逾越,沒有一個(gè)春天不會(huì)到來,只要我們能堅(jiān)守法治、道德和文明的底線,打贏這場攻堅(jiān)戰(zhàn),待到春暖花開時(shí)疫情終將消散,黎明就在不遠(yuǎn)處。