清单数字排序
这篇文章会介绍,如何在 Scratch 里使用函数、变数、逻辑判断...等积木,搭配清单的操作,实作一个可以将清单里的数字,由大到小或由小到大进行排序的功能。
积木程序原理
点击猫咪角色,从左侧积木清单里,新增一个变数 n 和一个清单 list,将 list 勾选显示在舞台中。
编辑点击绿旗时,清空 list 清单的内容,使用重复十次积木,每次重复将 1~10 的随机数加入 list,完成后点击绿旗,list 清单里就会出现十个随机数字。
新增一个名为“小到大”的函数,勾选“执行完毕再更新画面”。
透过下图,了解从大到小排序的原理:
- 依序判断清单中每个项目 n。
- 如果该项目 ( n ) 的数值,大于后一个项目 ( n+1 ),就将该项目,移动到 n+2 的位置。
根据排序原理,编辑“小到大”的函数内容:
- 使用重复积木,清单有几个项目,就重复几次 ( 将每个项目都判断一次 )。
- 每次重复时,将 n 设定从 1 开始。
- 每次重复时,执行另外一个重复积木,重复“清单长度 - 1”次 ( 因为 n 从 1 开始,所以减去 1 )。
- 判断如果清单的第 n 项大于第 n+1 项,就将第 n 项插入第 n+2 项。
- 接着删除第 n 项,让第 n+1 项变成第 n 项。
- 将 n 增加 1。
新增另外一个名为“大到小”的函数,勾选“执行完毕再更新画面”。
“大到小”函数的内容和“小到大”函数几乎相同,只有逻辑判断的地方改成“如果清单的第 n 项小于第 n+1 项,就将第 n 项插入第 n+2 项”。
完成效果
完成后,设定按下键盘“向下键”时,执行“小到大”函数,设定按下键盘“向上键”时,执行“大到小”函数,就可以开始执行清单的数字排序。
范例解答
范例解答:清单数字排序
微信扫码关注
抖音扫码关注