儿童编程scratch第10课 统计集成——自动生成柱状图教案.doc

儿童编程scratch第10课 统计集成——自动生成柱状图教案.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Scratch 培养孩子的思维与动手能力 PAGE PAGE 9 放飞自我 梦想起航 少儿编程教学资料,仅供参考,需要可下载并修改后使用! 第10课 统计集成——自动生成柱状图 任务导航 在上一课中,我们研究了“从1到6间随机选一个数”这个代码,数据分析的环节是用Excel完成的,我们是否需要在Scratch中编写一个软件来完成数据的分析呢?这相当于编写一个科学研究软件,需要考虑软件编写的必要性。自编软件的优点是省去了数据导出→Excel分析的过程,自编软件可能会节省时间,但缺点是需要开发的时间。但如图10.1所示如果自编的软件能够比原来的Excel分析结论更加直观形象,就很有必要自编软件。同学们,你肯接受挑战么? 图10.1 随机选数结果的柱状图 任务分析 Follow Me 1. 分析软件需求及目标 编写一款软件,首先需要明确想要编一款什么样的软件,初级目标、中级目标、高级目标分别是什么。中级目标是软件要核心完成的任务,完成了中级目标,软件的编写就算成功。初级目标是基础研究,是基于现有的水平和时间,将中级目标进行的简化,有时是完成核心代码,有时是积累一些基础的数据。高级目标时在中级目标基础上的提升,有时是软件原理上的创新,有的是小改进,可以算作是对软件的进一步地追求。初级目标、中级目标和高级目标,都要围绕着同一个“核”,这样软件的编写才科学、高效。 想一想: 分析300个随机数中1到6的数目,这个软件的三级目标是怎样的? 我们可以这样整理三级目标,如表10.1所示。 表10.1 三级目标 中级目标 链表中有300个数由从1到6的300个数据组成,编写出一个软件,统计出每个数字出现的次数 初级目标 只统计出1出现的次数 如图10.1所示 如图10.1所示 高级目标 用柱状图反映出每个数字出现的次数,甚至表现出每个数字出现的次数相对于总次数的百分比 2. 算法及程序设计 从表10.1中可以看出,初级目标是为了解决这个程序的核心算法。算法是指程序中解决问题的核心方式,大部分的算法都可以从生活中得到启示,比如“在1和6间随机选一个数”这种随机算法,就与生活中的掷色子问题对应。这种联系生活研究编程算法的思考方式,称为生活算法。那么找到300个随机数中1的个数与生活中的那个过程类似呢? 比如,有一个袋子里面装着300个标有1到6六个数字的乒乓球,每次只能从瓶口拿出一个乒乓球,如果是1就放在另外一个袋子,不是1就扔掉。这个过程用代码表示时,如图10.1所示。 图10.2 统计链表中数字1出现的数目代码 想一想 编写图10.1所示的代码的过程中,需要新建那些变量? 如果链表中超过了300组数据,图10.1中的代码还能不能解决? 图10.1的代码可以完成初级目标,那如何修改一下它,让其完成中级目标呢? DIY 编写一个可以统计1到6六个数字的代码,从变量的角度要从图10.1的代码中新建那些变量,从代码的角度,统计数字2出现次数的代码应该放在那个位置,与统计数字1出现次数的代码相比有什么区别。核心代码如图10.3所示。 图10.3 统计每个数字出现的次数 想一想 1.如果让链表中存储6000个随机数,然后让程序自动分析结果怎么做?完成这个实验,程序运行需要多长时间,是不是比Excel的方法快? 2.如何让结果可视化呢? 3.如果你使用图10.2所示的超速模式运行程序,你会发现程序运行的速度会提高10倍。 图10.2 超速模式下程序执行的速度会大大加快 3. 生成柱状图 柱状图的每个柱可以使用绘图编辑器完成,柱的高度要大于150个像素,注意需要选择“设定旋转中心”工具,将旋转中心设定为红色柱的顶端,如图10.3所示。 图10.3 绘制每个数字次数代表的圆柱 想一想 如果能够在计数完成之后自动生成柱状图,程序的效果就大大提升了,请你思考一下,需要增添那些新角色? 图10.4所示的代码,可以将柱状图红色部分的上沿和数字1的数目保持一致。制作6个这样的角色,就可以实现柱状图效果了,最后用一个灰色的色块将所有彩条的下缘挡住,只保留纵坐标大于0的那部分,这样,柱状图就完成了,如图10.5所示。 图10.4 生成柱状图 图10.5 自动生成柱状图 DIY 如果将图10.4改进为图10.6所示的代码,可以显示出每个数字出现数目占总数的百分比。 图10.6 超速模式下程序执行的速度会大大加快 如果我们换一个思路,不从分析已有链表的数据出发,将实验的过程理解为:掷一次色子,得到那个点数,就在该点数所在的一栏加1,最后统计每个点数出现的次数和百分比,程序会有什么样的变化?图10.7给出了一个参考的思路 图10.7 将随机数的产生、识别计数、分析一体化的代码 图10.8是12万组数据汇总后的结果

文档评论(0)

158****2165 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档