[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第191讲。
第15届蓝桥杯省赛已于2024年8月24日落下帷幕,中级组编程题一共有6题,分别如下:
截取递增数,本题是2024年8月24日举行的第15届蓝桥省赛Scratch中级组编程第6题,题目要求编程截取递增数。要求对一个不含0的九位数,获取所有的递增数并存入列表,如果没有就说“NO”,按下空格键对列表中的递增数排序,然后说出最大的数字。
题目说明
具体要求:
1). 点击绿旗,列表1为空,熊猫说“请输入一个不含0的九位数”,同时舞台下方显示示榆入框,如图所示;
例如:输入115367482
4). 得到所有递增数之后,按下空格按键,列表1中的数按照从小到大的顺序重新排列,如图所示;
5). 最后,熊猫说出列表1中的最大数,如图所示,1秒后程序结束。
评判标准:
5 分:满足"具体要求"中的1);
28分:满足"具体要求"中的2);
28分:满足"具体要求"中的3);
25 分:满足"具体要求"中的4);
14分:满足"具体要求"中的5)。
效果预览
在编程之前,先来看一下作品的完整效果吧:
思路分析
本题只有一个角色,就是熊猫,如图所示:
获取递增数 列表排序
15, 36, 367, 67, 48
数字:115367482
j = 1,第j个数字为1,第j+1个数字为1
1 < 1不成立,循环结束
本轮循环没有递增数
数字:115367482
j = 2,第j个数字为1,第j+1个数字为5
1 < 5成立,j增加1,找到一个递增数15
j = 3,第j个数字为5,第j+1个数字为3
5 < 3不成立,循环结束
本轮循环找到一个递增数15
数字:115367482
j = 3,第j个数字为5,第j+1个数字为3
5 < 3不成立,循环结束
本轮循环没有递增数
数字:115367482
j = 4,第j个数字为3,第j+1个数字为6
3 < 6成立,j增加1,找到一个递增数36
j = 5,第j个数字为6,第j+1个数字为7
6 < 7成立,j增加1,找到一个递增数367
j = 6,第j个数字为7,第j+1个数字为4
6 < 4不成立,循环结束
本轮循环找到两个递增数36和367
数字:115367482
j = 5,第j个数字为6,第j+1个数字为7
6 < 7成立,j增加1,找到一个递增数67
j = 6,第j个数字为7,第j+1个数字为4
6 < 4不成立,循环结束
本轮循环找到一个递增数67
程序实现
获取递增数 列表排序 完成主程序
至此,整个作品就创作好了,是时候来测试自己的作品啦。
总结与思考
本题是中级组编程部分第6题,分数为100分,积木块数量100个左右,涉及到的知识点主要包括:
字符串运算;
列表处理;
嵌套循环;
排序算法;
作为本次中级组省赛的第6题,也是压轴题,难度较大,完成时间25分钟左右。本题的难点有两个,一是如何获取递增数,二是列表排序。
其中,排序算法在历届真题中已经出现了多次,涉及排序的作品有10来个左右,这是我们必须掌握的基础算法。
真正有难度的是如何获取递增数,在Python和C++中,递增数是常客,但是在Scratch竞赛中,这是第一次出现。这说明Scratch竞赛逐渐开始算法化,对于基础不错的孩子,在平时的学习过程中,应该多关注一下算法层面的练习和思考。
获取递增数的实现并没有那么复杂,关键是要分析递增数的构成规律,确定好寻找递增数的方法,代码层面其实就是嵌套循环和字符串处理。
超平老师给你留一道思考题,如果需要判断输入的数字是否为不含0的九位数,你知道该怎么实现吗?
你还有什么好的方法吗,非常欢迎您和超平老师交流分享。
需要素材和源码的,可以添加本人微信。
另外,超平老师创建了一个蓝桥杯备考交流群,这是专门为老师和家长打造的免费社群,您可以与来自全国各地的老师、家长共同交流经验,分享学习心得。
超平老师也会给大家带来及时的赛事动态,备考攻略,真题资源分享,帮助各位更好地备考第15届蓝桥杯赛事,力争取得优异的成绩。
扫码或长按加入微信群