陳新龍
高考是關(guān)乎著億萬(wàn)中國(guó)人命運(yùn)的考試,每年的時(shí)間都是安排在6月7日和6月8日(寓意是錄取吧!),我們能不能做個(gè)高考倒計(jì)時(shí)時(shí)鐘,方便高三同學(xué)們查看倒計(jì)時(shí)時(shí)間。要想用Scratch來(lái)制作這個(gè)倒計(jì)時(shí)時(shí)鐘,需要把當(dāng)前系統(tǒng)時(shí)間到高考的時(shí)間通過(guò)數(shù)學(xué)計(jì)算轉(zhuǎn)換為天數(shù)、分鐘以及秒數(shù),還要注意考慮如果當(dāng)前時(shí)間已經(jīng)錯(cuò)過(guò)今年的高考,需要提示高考已經(jīng)結(jié)束(圖1)。
我們知道1天=24小時(shí)=24×60分鐘=24×60×60秒,要將時(shí)間換算成秒數(shù)這樣方便我們計(jì)算時(shí)間差。首先確定高考開始時(shí)間為6月7日早上9點(diǎn),計(jì)算1月1日到6月7日早上9點(diǎn)的秒數(shù),然后再計(jì)算1月1日0時(shí)到當(dāng)前時(shí)間的秒數(shù),這兩個(gè)秒數(shù)的時(shí)間差就是倒計(jì)時(shí)的總秒數(shù)了。將這個(gè)時(shí)間差轉(zhuǎn)化成天、小時(shí)、分鐘、秒就是要顯示的結(jié)果了。
首先我們創(chuàng)建多個(gè)變量(當(dāng)前秒數(shù),高考秒數(shù),天,時(shí),分,秒,變量i)并且創(chuàng)建一個(gè)列表用于存放每月的天數(shù)。創(chuàng)建4個(gè)積木,1.計(jì)算1月1日0時(shí)至高考的秒數(shù)。2.計(jì)算1月1日0時(shí)到當(dāng)前的秒數(shù)。3.將秒數(shù)換算成天、時(shí)、分、秒。4.倒計(jì)時(shí)結(jié)束,當(dāng)超過(guò)6月7日后,更換顯示效果。
1. 制作“計(jì)算1月1日0時(shí)到當(dāng)前的秒數(shù)”的積木:設(shè)置變量“當(dāng)前秒數(shù)”為0。由于每月天數(shù)不同,我們預(yù)先在“每月天數(shù)”列表中存儲(chǔ)了各月份的天數(shù)。通過(guò)循環(huán)把已經(jīng)過(guò)去的月份天數(shù)換算成秒數(shù),存入變量“當(dāng)前秒數(shù)”。然后把當(dāng)月的天數(shù)換算成秒數(shù)增加入變量,接下來(lái)把小時(shí)數(shù)、分鐘數(shù)轉(zhuǎn)化成秒數(shù)增加進(jìn)變量,最后增加入當(dāng)前時(shí)間的秒數(shù)。這樣就得到了當(dāng)前時(shí)間的總秒數(shù)(圖2)。
2. 計(jì)算1月1日0時(shí)至高考的秒數(shù)的積木:設(shè)置高考秒數(shù)為0,由于正常高考的日期為6月7日9時(shí),所以我們?cè)O(shè)置循環(huán)執(zhí)行5次,將過(guò)去的5個(gè)月的天數(shù)轉(zhuǎn)化成秒數(shù),再增加6天的時(shí)間和9時(shí)的總秒數(shù)(圖3)。
3. 用高考時(shí)間的秒數(shù)減去當(dāng)前時(shí)間的秒數(shù)。將兩個(gè)積木換算的秒數(shù)相減就可以得出相差的秒數(shù)。
4. 將相差的秒數(shù)再換算成對(duì)應(yīng)的月、天、時(shí)、分、秒。天數(shù)=向下取整(總秒數(shù)/每天的秒數(shù));時(shí)=向下取整(總秒數(shù)除以每天的秒數(shù)的余數(shù)再除以每小時(shí)的秒數(shù));分=向下取整(總秒數(shù)除以每天的秒數(shù)的余數(shù)再除以每小時(shí)的余數(shù)再除以一分鐘秒數(shù));秒=總秒數(shù)除以每天的秒數(shù)的余數(shù)再除以60的余數(shù)。這里數(shù)學(xué)換算的方法可能有點(diǎn)復(fù)雜,大家需要仔細(xì)理解。沒(méi)有特別的技巧,都是數(shù)學(xué)思維的轉(zhuǎn)換(圖4)。
5. 假設(shè)今年的高考時(shí)間已經(jīng)過(guò)去了就需要做判斷,當(dāng)高考秒數(shù)小于當(dāng)前秒數(shù)時(shí),就是用倒計(jì)時(shí)結(jié)束積木。顯示高考已經(jīng)結(jié)束。
高三的學(xué)生們,加油呀,預(yù)祝今年所有的高考學(xué)生都能金榜題名。
這道簡(jiǎn)單的算法題目就完成了,往后我也會(huì)綜合更多的知識(shí),把有趣的算法知識(shí)帶給大家。