闰年计算-第13届蓝桥杯Scratch选拔赛真题精选
第13届蓝桥杯青少年组第1次选拔赛于2021年8月14日举行,形式为线上考试。Scratch分为初级组和中级组,其中初级组面向7~10岁孩子,中级组面向11~14岁孩子。
闰年计算,本题是2021年8月14日举行的第13届蓝桥杯Scratch选拔赛真题编程第5题,初级组和中级组都有此题,题目要求编程计算玩家输入的年份是闰年还是平年,输入的月份有多少天。
先来看看题目的要求吧。

题目说明

背景信息:
每年的 1、3、5、7、8、10、12 月都有 31 天; 4、6、9、11 月都有 30 天;2月比较特殊,公历年份能被4整除的是闰年,其他是平年,例如2020年是闰年,2021年是平年。平年的2月有28天,闰年的2月有29天。
1). 点击绿旗,询问请输入年份并出现对话框;
2). 说出输入年份为平年还是闰年(年份大于2001,小于2040);
3). 询问请输入月份并出现对话框(1-12);
4). 说出输入月份有多少天;
5). 完整说出刚才输入年份为平年或闰年,输入月份一共有多少天。
评分标准:
5分:满足要求1);
5分:满足要求2);
6分:满足要求3);
7分:满足要求4);
7分:满足要求5)。

思路分析

本题只有1个小狗角色,舞台背景和角色分别来自于Scratch3.0自带的背景库和角色库,如图所示:
普通闰年 世纪闰年

程序实现

根据题目描述和思路分析,我们可以分4步来编写程序:
初始化列表
判断闰年还是平年 计算月份天数 说出完整语句
1. 初始化列表
根据思路分析,先创建一个列表,命名为“月份天数”,并添加好12个月份的天数,为了方便起见,我们可以创建一个自制积木来完成这项工作,代码如下所示:
很多同学直接向列表中添加数据,也是可以的,但使用代码方式添加更加安全合理,强烈推荐使用这种方式,不过要注意在添加之前清空列表,避免多次添加。
2. 判断闰年还是平年
绿旗被点击时,小狗位于舞台中心,然后开始询问输入年份,当玩家输入年份之后,就需要判断是闰年还是平年了,根据前面的思路分析,编写代码如下:
简要说明如下:
1). 为了方便,这里定义了一个变量“年”,用于保存玩家输入的年份;
2). 判断是否整除就是求余数,因此这里使用的是“a除以b的余数”指令;
3). 这里的条件比较长,其中前面的两个条件进行的是逻辑与运算,用于处理普通闰年,第3个条件则用于处理世纪闰年的;
4). 列表中2月份默认添加的是28天,如果是闰年,2月份应该是29天,所以这里对2月份天数做了一个特殊处理,如果是闰年将2月份更新为29天,否则更新为28天。
3. 计算月份天数
接着就是询问月份了,这个非常简单,直接上代码:
为了方便,这里也定义了一个变量“天数”,用于保存当前月份的天数。
4. 说出完整语句
最后需要完整地说出一句话,有的同学就开始犯难了,难道还要再判断一次吗?其实我们可以换个思路,使用分步处理的方法。
先定义一个变量“完整语句”,用于表示最后要说的内容,绿旗点击时,先将变量设置为空字符串,在判断闰年的时候,根据闰年还是平年分别设置不同的内容,当说出月份有多少天之后,再进行字符串连接即可,在之前的代码块中添加代码如下:

总结与思考

Scratch问答,包括询问并等待和回答;
逻辑运算,包括逻辑与、逻辑或和逻辑非(不成立);
列表的灵活运用,包括列表的清空、插入、获取和替换等操作;
使用取余数指令判断两个数是否能整除;
字符串连接运算,重点是多个连接指令的组合使用;
自制积木的使用。

添加 家长论坛微信
全部 0条评论