蓝桥杯青少年创意编程大赛Scratch编程题解析(五)
2020-04-10
电脑报 2020年7期
关键词:排序
列表排序
1.问题描述
老师给小猫出了一道题:在列表1中生成5个在1~99范围内的随机整数,然后按照从大到小的顺序将它们依次移到列表2中。
例如:在列表1中随机生成的整数依次是“12,3,1,13,17”,在处理之后列表2中的整数依次是“17,13,12,3,1”。如图1、2。
具体要求:(1)每次点击绿旗后,在屏幕中都显示如图1所示的列表1和列表2,且在列表1中随机生成5个在1~99范围内的随机整数,而列表2中内容为空。然后小猫说“5秒钟后开始处理”,并等待5秒钟。
(2)处理数据时,每间隔1秒钟,都将列表1中当前最大的一个数字移动到列表2中,注意:是移动,不是复制。
(3)当处理到列表1为空后,列表2中的数据应从大到小排列,如图2所示,然后小猫说“处理完啦”2秒钟,然后程序结束。
评判标准:10分,点击绿旗后,在列表1中正确生成了5个随机的整数(裁判可多次点击绿旗来验证是否随机),且小猫说“5秒钟后开始处理”,并等待5秒钟。
30分,在10分标准的基础上,开始处理后,每1秒钟都将列表1中当前最大的数字移动到列表2中,但不是每次都移动最大数字或者移动到列表2中后顺序不是从大到小,或者处理完成后小猫没有说“处理完啦”,2秒钟。
50分:完全符合题意。
2.编程思路
(1)随机生成5个数字并存入列表1。
(2)找到當前列表1中的最大的数并存储到列表2中,然后删掉这个数,完成移动。
(3)重复执行第2步,直到列表1为空,结束循环。
(4)本题的难点是找到列表中最大的数。对列表排序的算法有很多种,本题数据量非常少,任何一种排序算法都是可以的。学习编程的小朋友可能都接触过相对简单的“冒泡排序算法”。……
登录APP查看全文
