换个思路解决年龄判断

2022-03-24 05:06陈新龙
电脑报 2022年10期
关键词:出生日期列表小猫

陈新龙

前段时间浙江大部分地区疫情反弹,小陈老师所在的宁波市要求居民做核酸检测,当前疫情在各地时有反弹,大家一定要及时接种疫苗,出门戴好口罩,做好防护措施。

今天就和大家分享一道Scratch市赛题——新冠疫苗接种系统:根据国家最新的防疫政策,年满三岁的小朋友均需要接种新冠疫苗,现某幼儿园托管班有学生数名,出生日期分别为:20191016、20171220、20181206、20201001等(八位数字分别代表年月日),请编写一套疫苗接种系统帮助幼儿园筛选出符合接种条件的小朋友。

分析题目的要求,这个疫苗接种系统的基础功能其实是根据生日判断年龄是否符合要求,而非我们根据题目以为的数据管理系统。

首先保留小猫角色,设置一个好看的背景,其次设置名为“当前日期”的变量用来获取当前真实时间,如果月份和日期不足两位数时用0来填充,保证当前日期的数字長度为八位数。建立名为“出生日期”的列表,用于记录幼儿园小朋友的出生日期。

运行程序后,初始化列表,在列表中加入小朋友们的出生日期:20191016、20171220、20181206、20201001。

当用户按下空格键时,小猫按照次序说出每个小朋友是否符合疫苗接种的条件,如:第几个小朋友符合疫苗接种条件或第几个小朋友不符合疫苗接种条件即可。

打开Scratch软件编写程序时,先创建变量“当前日期”和列表“出生日期”将小朋友日期加入列表中。当前日期的时间通过侦测中的代码“当前时间的年/月/日”控制,由于年份本身就是四位数所以不需要任何判断,月份和日期需要根据字符数进行判断,当月份和日期字符数长度等于1时,通过连接的方式在月份和日期数字前补充数字0即可。

其实本道题目最难的一个关键在于如何判断小朋友年龄是否大于三岁,可能不少同学会去考虑当前日期减去出生日期的方法计算出天数的多少,看天数是否大于3*365天,但是每个月的日期不同,计算起来有一定难度,导致他们停下了脚步。其实可以换一个思路,例如当前日期是2022年3月15日,那么三年前的日期就是2019年3月15日,因为8位数中年的最后一位刚好是万位,我们只需要将当前日期减30000,得到三年前的日期即可。如果计算出的数值小于三年前的日期说明该小朋友符合接种疫苗的标准可接种疫苗,否则的话该小朋友不符合接种疫苗的标准不能接种疫苗。问题也就迎刃而解了。

没有一个冬天不能逾越,没有一个春天不会到来,只要我们能坚守法治、道德和文明的底线,打赢这场攻坚战,待到春暖花开时疫情终将消散,黎明就在不远处。

猜你喜欢
出生日期列表小猫
用Scratch实现十二星座查询
扩列吧
列表法解分式方程问题探索
My Dreams
小猫
列表画树状图各有所长
2011年《小说月刊》转载列表
宝贝趣图