【编程题】【Scratch四级】2021.12 森林运动会
森林运动会
在森林运动会中,小猫、小狗、小兔子、乌龟、小猴子参加了800米耐力跑项目,分别耗时3分25秒、4分15秒、3分45秒、4分45秒、4分5秒。请设计程序实现自动排名。
排序前
排序后
1. 准备工作
(1)保留小猫角色及空白背景;
2. 功能实现
(1)建立名为“耐力跑”的列表,用于记录运动员的成绩,以秒为单位;
(2)点击绿旗,初始化列表,依次往列表中加入:205,255,225,285,245;
(3)点击小猫,对运动员的成绩进行降序排列。
3. 设计思路与实现
(1)角色分析
角色:默认角色小猫
(2)背景分析
背景:默认背景(无色)
(3)所用积木块介绍
a. 事件类
- 程序开始积木块。
- 点击舞台区的绿旗,执行以绿旗开始的所有程序脚本。
- 当角色被点击时,执行后面的程序指令。
b. 控制类
- 条件判断语句,如果条件返回值为真(bool值),那么执行模块里面的积木指令,如果条件不成立,返回值为假,执行条件判断模块后面的程序指令。
- 循环积木块:一遍一遍地执行包起来的积木序列。
- 判断条件是否为真,如果尖尖角里面的返回值为真则停止循环。
c. 运算类
- 比较运算,左边大于右边返回true值(真),否则返回false值(假)。
- 比较运算,左边小于右边返回true值(真),否则返回false值(假)。
- 算术运算,返回左边与右边的差。
- 算术运算,返回左边与右边的乘积。
d. 变量类
- 建立一个变量,输入变量名称,然后选择适用于所有角色还是适用于当前角色。
- 设置变量的值为给定值,通常用于初始化变量。
- 设置变量的值为自身的值加X。
- 建立一个列表,输入列表名称,然后选择适用于所有角色还是适用于当前角色。
- 将一个元素加入到列表的末尾。
- 获取列表中索引为X的项目。
- 列表中包含项目的数目。
- 清空列表。
- 将列表中索引为X的项目设置为新的项目Y。
(4)角色、舞台背景设置
a. 角色设置
默认角色设置,无需修改角色造型。
b. 舞台背景设置
默认舞台背景设置,无需修改舞台背景。
(5)脚本编写
新建列表“耐力跑”,用于记录运动员的成绩。
新建变量“i”,用于冒泡排序的外层循环计数,即每次确定第“i”个位置的取值。
新建变量“j”,用于冒泡排序内层循环的相邻元素比较。
新建变量“temp”,临时变量,用于两个元素交换时的临时存储。
a. 角色:小猫
编程思路:冒泡排序
当点击绿旗时:
- 开始:点击绿棋,开始执行代码。
- 清空列表。(初始化列表,依次往列表中加入:205,255,225,285,245;)
- 将数据205,255,225,285,245依次加入到列表中。
当角色被点击时:
- 初始化变量:i = 1。
- 重复执行直到 i > 耐力跑的项目数 - 1:
- 初始化变量:j = 耐力跑的项目数
- 重复执行直到 j < i+1:
- 如果耐力跑的第j项 > 耐力跑的第j-1项,那么将耐力跑的第j项和第j-1项交换。
- j -= 1。
- i +=1
4. 评分标准
(1)初始化列表,删除所有项后,加入成绩;(2分)
(2)点击小猫后,排序降序排列正确;(5分)
(3)正确删除、替换链表中的数据;(2分)
(4)正确使用循环的嵌套;(1分)