> Mind+
查看: 79|回复: 0

[教程] 六一学习汇:冬奥小题

[复制链接]
带小朋友参加了创造大赛
有这样一个算法小题目,刚学习scratch半年的小朋友还不能解答
六一,尝试带小朋友探索一下


截图201906120932025256.png

题目如下
截图201906120932106293.png
步骤1
算法分析1


为了让小朋友能听明白,我用孩子们生活中的例子开始分析。
教室中有30个小朋友,老师要随机找10个小朋友去参加活动,点到的小朋友到教室外集合。
那第一次,从30个人中随机点到小A,小A走到教室门口,教室中余下29人。(1-30的随机数)
第二次,老师从29个小朋友中随机点小C,小C出来,教室余28人。(1-29随机数)
……
如此进行10次,老师从教室中找到10个小朋友列队站在门外。教室中余下20人。

现在是按老师挑选的先后顺序排队的,这已经完成从30人中随机找10个小朋友了。
这样讲,小朋友都明白,因为这是生活中例子,小朋友在学校都有体验。
先完成这一步。
准备一个文本文档,写30个编号进去(为了小朋友方便,小朋友们打字太慢),写一个编号击一下回车(注意不给空行,如最后有空行,要删除)。

截图201906120932181080.png
步骤2新建两个列表


本例中列表1,list.
列表2命名为list1.
方法为:变量--新建列表

截图201906120932271699.png

在list上右击,导入30个编号数据。
现在可以看到,list中有30个数据。

截图201906120932367613.png

第一次,从列表list中1-30中随机选一个人移到list1中
同时从list中删除他。
为了保证移走和删除的是同一个人,要先建一个变量,存入1-30随机数。
因为项目数=30,所以我们用从1-项目数中产生一个随机数出来。
运行一下,我们本次发现随机移走了第5项(当然你的操作会是不同的项目哈)。
list中项目数就成29,如果再次运行这三行命令,将是从1-29中随机选择了。

截图201906120932457604.png

再运行一次,到表list1中了两个人。



运行10次就达到选择10 个人的目标了。



程序优化一下,加个重复10次。
截图201906120934379497.png
步骤3再来一次

题目要求挑出来的10 个人不按挑选顺序,再随机排队。
要再建立一个列表list2.再按刚才算法来一次好了。
可以复制修改上面的程序。

截图201906120934451113.png

以上只是参考,方法肯定有很多的。
代码在这里了
https://gitee.com/rzyzzxw/2019/blob/master/list.sb3

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail