项目来源
按照新课标中五年级“身边的算法” 的要求,掌握第二单元“算法结构与描述”中顺序、分支和循环结构等概念,并运用这些知识在K10的帮助下完成一个小项目的设计。



项目内容
通过设计一个“能随着外部光线的强弱变化而翩翩起舞的音乐喷泉动画”为任务目标,在K10的屏幕上有12根颜色相间的柱状图,当检查到外部光线强弱发生变化时会随之改变。

将任务分解成为3个小任务:
1、 在屏幕的底部绘制一个柱状图,
2、 绘制更多的柱状图,并让图形的高度与光线强弱相关。
3、 让两两相邻的柱状图颜色不同
准备过程
1、 打开mind+,用数据线将K10和电脑连接起来
2、 在mind+中,在上传模式下,点击左下角的“扩展”,在弹出窗口中,点击“主控板”选项,然后选择“行空板k10”,接着点击左上角的”返回“按钮

3、 在mind+中,点击“连接设备”,在下拉菜单中选择“comxx-unihiker k10”字样的选项。

实践过程
任务一、
点击左侧“图形模块区”中的“行空板K10”,找到图中所示的模块,并拖拽到“图形化编程区”。

尝试将代码按照不同的方式组合,然后点击“上传到设备”,观察它们对应的执行结果,思考一下为什么。
程序代码 | 执行结果 |
尝试1:
| ![]() |
观察结果:在指定坐标位置,以矩形的左上角为起点绘制出边框为1的矩形图案。 | |
尝试2: | ![]() |
观察结果:绘制的图形与尝试1的结果相似,但是设置线宽边框为1的语句没有生效。 | |
尝试3: | ![]() |
观察结果:屏幕没有绘制任何图案。可以继续探究为什么图案不见了。 |
通过上面的尝试,第一种顺序符合我们预期的目标结果。另外我们也可以了解到,在编程过程中,程序是按照顺序逐行执行的,如果改变编程积木的执行顺序对于程序运行的结果会有很大的影响。
这就是编程的第一种基本结构:顺序结构,按顺序执行语句。
我们继续来完善程序实现任务一目标,通过改变柱状图的起始位置,因为屏幕大小是240*320,可以用一个变量来保存矩形的高度值,接着我们能够换算出矩形的Y坐标值。

第一个小任务就完成了。
任务二、
接着我们要让这个矩形的高度和外部光线强弱关联起来,也就是说光线越强,矩形的高度越高。同时还要在屏幕的底部位置绘制出更多的柱状图案。可以把这个任务再分解成三个小任务。
先来完成高度与光线强度的数值绑定。在K10的上方有一组环境光传感器可以检测出外部光线数值,尝试把数值显示在屏幕上。

尝试一、 尝试二、程序代码 执行结果 观察结果:屏幕上显示一个数值
观察结果:屏幕上不断闪烁显示一个数值。用强光照射和遮挡传感器的方式可以知道数值的范围在0~10000之间。
在尝试一的代码中,显示环境光强度的语句只执行了一次,在尝试二的代码中,显示环境光强度的语句被反复的执行,呈现出来的效果就是数值被不停的刷新显示。结合项目的需求,当然是需要将程序积木放置在“循环执行”语句里面。
接着来完成第2个小任务,将柱形图的高度与光线强度绑定。因为矩形的高度范围为0~320,同样的矩形的起始点Y坐标应该为320-矩形高度。

可以开启手机的手电筒,放置在K10的环境光强度传感器上方,通过改变和传感器的距离来得到不同的光线强度,可以看到柱形图不断变高变低。
最后我们来完成第三个小任务,产生更多的矩形图案。


重复生成12根宽度为20的矩形图案,矩形高度和当前光线强度相关。通过实践可以知道,当我们需要对某些代码重复执行或重复执行相应次数时,就可以使用我们的循环结构语句。
这就是我们需要认识的第二种程序基础结构:循环结构。
任务三、
完成任务二后,我们发现生成柱形图都是相同的颜色,能够让相邻的矩形图案呈现不同的颜色呢?这就要用上第三种程序基础结构:选择结构。


新增一个计数变量放置在循环结构中,记录当前循环的圈数,如果是奇数的时候,就将矩形的填充颜色设置为蓝色,反之则为红色。这种根据条件来选择执行路径的程序结构就是选择结构,也叫分支结构。
可以继续提出拓展问题,如果想增加间隔颜色的种类应该怎么修改?
演示视频
评论