最新消息:

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

乐高 少儿编程 2957浏览 0评论
ev3基础编程01

本阶段课程适合2年级以上刚开始接触EV3机器人的同学们。

本篇请下载 LEGO Mindstorms教育版软件 有条件的话,请为孩子添置一套EV3套装,让课程内容可以同步练习进行动手实践。

经过上周,讲了“阵列运算”模块的内容后,本号粉丝量飞涨了一把。

非常感谢大家的帮忙,请继续帮推,我们的好内容还有很多呢!

同时,老丁非常欢迎更多小朋友和大朋友一起加入我们这个分享平台。

确实有很多小伙伴想要了解这些“非基础”模块的使用方法。

其实后续还有很多,比如“我的模块”的创建,蓝色的高级模块应用等等。

我们以后有机会,慢慢给大家讲。

机器人学习,包括搭建、编程。其实还是需要在一定的场景内进行学习的。

 

因为我们其实动手做的东西,是由“场景”提出各种需求后,才有目的性的进行分析和实现的。

而这也是学习机器人的根本目标:

学会分析和解决问题

我们从一个例子开始,今天继续讲“阵列运算”。


举个例子

 

我们使用上节课学习的知识,来编写一个程序。

在屏幕上循环显示【1~5】的数字。

这个程序,我们可以这样来编写。

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!连续复制5行后……这个程序就完成了。

这样做是不是傻了点……那如果要显示100个数字呢……

其实,当然不用那么麻烦!

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

真事:课堂里面,当我说出这句话时,被全班同学暴揍了一顿。有时我在思考,我到底教了一帮什么样的学森!!!


循环索引

 

在我们的循环模块里面,有这样这个功能,一般很多人都会忽略掉它的存在。——循环索引

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

这个功能是让程序从0开始自动读取索引的内容。

每一次循环,读取一遍。

我们只需要这样,程序就会自动读取“阵列”里面的每个索引对应的数据了。

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

但与此同时,我们再实际运行中,发现了。

在运行一段时间后。

程序出错了!


程序崩溃

 

程序崩溃是指,编写好的程序,在某个环节的执行中,产生错误,无法继续运行的情况。

可以说,在我们之前的基础教学中,一般情况下,你是不会遇到程序崩溃的,只会是你自己编程思路有问题。

而当我们学习了“阵列”后,可能你会遇到第一个“崩溃”的情况产生。这个就跟我们没学到“根号”前,只认识“π”这样一个无限不循环小数是一个道理。

因为阵列模块的学习,是机器人编程的第二次能力进阶——数据库能力。(第一次是学会使用变量)

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

当程序崩溃的时候,首先要先思考:

为什么它会崩溃?

一般情况下,如果程序是编写思路上的错误,只不过会造成实际运行情况达不到要求,程序本身仍然是可以执行的

但程序一旦崩溃,证明里面的数据读取,出现了严重错误

即,数据结构出错了

而数据结构错误,无非是写入错误,和读取错误两种。

我们今天碰到的问题,出错就在读取错误上。


阵列长度

 

上面这个程序会崩溃,是因为,

当我们使用“循环索引”功能时,阵列会自动按照“0/1/2/3……”这样的顺序读取阵列数据

但上文的程序,只有5个数据,当程序读取到“5”(即第六个索引)的时候。

数据就断掉了,后面没有数据了。

关键的数据出错,程序就无法走下去。

自然,这个程序就崩溃了。

这个时候,我们就需要重新审视这个问题。

其实我们只需要程序去读取0-4的索引

所以我们可以直接在循环结束的位置,用计数,填上“5”

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

但问题又来了,

我们今天刚刚的数据是手动填写的,

这样其实我们是知道有几个数据的。

万一以后数据是由机器自动填写,

我们不知道有多少个数据,怎么办呢??

这里我们引入一个新的概念

长度

就像排队,一排只有5个人,

这里的“5”个人,代表的是一个队伍的“长度”。

即,阵列长度值,为5

6个人,长度就是6

我们在阵列运算模块里,有读取“阵列长度”的功能存在,并且可以直接使用长度值。

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

这样一来,问题就解决啦。

只要把长度值设定为循环的结束值,即可!

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!是不是很简单?

【EV3基础编程 第十二课】老丁独家!前方高能,与“程序崩溃”的第一次邂逅!

再套上一个“大”循环,让它无限循环下去,屏幕上就会不停地重复显示阵列里的数据啦!


这两节课的重点!总结

 

上次我们学习了“索引”

今天我们加入了“阵列”的一个新概念,“长度”

这两个基本概念我们要非常熟悉,学的也需要非常扎实!

千万不能似懂非懂!

无论我们是现在还是未来学习数据库相关的专业课程,这两个概念是千万不能有任何一点理解上的偏差的。

给各位小伙伴一个小作业。

自己动手写几个阵列,然后快速在下方标出阵列的长度,让爸爸妈妈配合一下,随机抽取其中的几个“索引”,自己快速的找到它的对应值。

练习一两次即可,不能有任何错误哦!

再聪明的脑子,也需要实践。

当我们这两个概念清晰后,我们就可以进一步学习,自动添加阵列的方法啦!

我们下期,再见!

 

重点总结

学习“阵列长度”的概念,进一步了解阵列的使用方法。

您必须 登录 才能发表评论!