友情提示:380元/半年,儿童学编程,就上码丁实验室。
本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。
经过上周,讲了“阵列运算”模块的内容后,本号粉丝量飞涨了一把。
非常感谢大家的帮忙,请继续帮推,我们的好内容还有很多呢!
同时,老丁非常欢迎更多小朋友和大朋友一起加入我们这个分享平台。
确实有很多小伙伴想要了解这些“非基础”模块的使用方法。
其实后续还有很多,比如“我的模块”的创建,蓝色的高级模块应用等等。
我们以后有机会,慢慢给大家讲。
机器人学习,包括搭建、编程。其实还是需要在一定的场景内进行学习的。
因为我们其实动手做的东西,是由“场景”提出各种需求后,才有目的性的进行分析和实现的。
而这也是学习机器人的根本目标:
学会分析和解决问题
我们从一个例子开始,今天继续讲“阵列运算”。
举个例子
我们使用上节课学习的知识,来编写一个程序。
在屏幕上循环显示【1~5】的数字。
这个程序,我们可以这样来编写。
连续复制5行后……这个程序就完成了。
这样做是不是傻了点……那如果要显示100个数字呢……
其实,当然不用那么麻烦!
真事:课堂里面,当我说出这句话时,被全班同学暴揍了一顿。有时我在思考,我到底教了一帮什么样的学森!!!
循环索引
在我们的循环模块里面,有这样这个功能,一般很多人都会忽略掉它的存在。——循环索引
这个功能是让程序从0开始自动读取索引的内容。
每一次循环,读取一遍。
我们只需要这样,程序就会自动读取“阵列”里面的每个索引对应的数据了。
但与此同时,我们再实际运行中,发现了。
在运行一段时间后。
程序出错了!
程序崩溃
程序崩溃是指,编写好的程序,在某个环节的执行中,产生错误,无法继续运行的情况。
可以说,在我们之前的基础教学中,一般情况下,你是不会遇到程序崩溃的,只会是你自己编程思路有问题。
而当我们学习了“阵列”后,可能你会遇到第一个“崩溃”的情况产生。这个就跟我们没学到“根号”前,只认识“π”这样一个无限不循环小数是一个道理。
因为阵列模块的学习,是机器人编程的第二次能力进阶——数据库能力。(第一次是学会使用变量)
当程序崩溃的时候,首先要先思考:
为什么它会崩溃?
一般情况下,如果程序是编写思路上的错误,只不过会造成实际运行情况达不到要求,程序本身仍然是可以执行的。
但程序一旦崩溃,证明里面的数据读取,出现了严重错误。
即,数据结构出错了。
而数据结构错误,无非是写入错误,和读取错误两种。
我们今天碰到的问题,出错就在读取错误上。
阵列长度
上面这个程序会崩溃,是因为,
当我们使用“循环索引”功能时,阵列会自动按照“0/1/2/3……”这样的顺序读取阵列数据。
但上文的程序,只有5个数据,当程序读取到“5”(即第六个索引)的时候。
数据就断掉了,后面没有数据了。
关键的数据出错,程序就无法走下去。
自然,这个程序就崩溃了。
这个时候,我们就需要重新审视这个问题。
其实我们只需要程序去读取0-4的索引。
所以我们可以直接在循环结束的位置,用计数,填上“5”
但问题又来了,
我们今天刚刚的数据是手动填写的,
这样其实我们是知道有几个数据的。
万一以后数据是由机器自动填写,
我们不知道有多少个数据,怎么办呢??
这里我们引入一个新的概念
“长度”
就像排队,一排只有5个人,
这里的“5”个人,代表的是一个队伍的“长度”。
即,阵列长度值,为5。
有6个人,长度就是6。
我们在阵列运算模块里,有读取“阵列长度”的功能存在,并且可以直接使用长度值。
这样一来,问题就解决啦。
只要把长度值设定为循环的结束值,即可!
是不是很简单?
再套上一个“大”循环,让它无限循环下去,屏幕上就会不停地重复显示阵列里的数据啦!
这两节课的重点!总结
上次我们学习了“索引”
今天我们加入了“阵列”的一个新概念,“长度”
这两个基本概念我们要非常熟悉,学的也需要非常扎实!
千万不能似懂非懂!
无论我们是现在还是未来学习数据库相关的专业课程,这两个概念是千万不能有任何一点理解上的偏差的。
给各位小伙伴一个小作业。
自己动手写几个阵列,然后快速在下方标出阵列的长度,让爸爸妈妈配合一下,随机抽取其中的几个“索引”,自己快速的找到它的对应值。
练习一两次即可,不能有任何错误哦!
再聪明的脑子,也需要实践。
当我们这两个概念清晰后,我们就可以进一步学习,自动添加阵列的方法啦!
我们下期,再见!
重点总结
学习“阵列长度”的概念,进一步了解阵列的使用方法。