- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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万组数据汇总后的结果
您可能关注的文档
- 第3课 少儿编程scratch添加声音(讲义)初中信息技术.doc
- 第3课 少儿编程scratch添加声音(教案)初中信息技术.doc
- 第4课 少儿编程scratch显示与隐藏(讲义)初中信息技术.doc
- 第4课 少儿编程scratch显示与隐藏(教案)初中信息技术.doc
- 第5课 少儿编程scratch侦C语句(讲义)初中信息技术.doc
- 第5课 少儿编程scratch侦C语句(教案)初中信息技术.doc
- 第6课 少儿编程scratch变量与链表(讲义)初中信息技术.doc
- 第6课 少儿编程scratch变量与链表(教案)初中信息技术.doc
- 第7课 少儿编程scratch广B使用(讲义)初中信息技术.doc
- 第7课 少儿编程scratch广B使用(教案)初中信息技术.doc
文档评论(0)