LEGO EV3【阵列运算】模块参考讲解

      前几天,跟叔现学的,自己又测试了几次,然后在11月8日晚10点在【LEGO部落】微信群进行的一次分享讲解,现在我把这个在公众号分享出来,希望尽我最大的能力,讲解清楚,不会给人敷衍的感觉,不足之处还望各位指正。

 

一、数组

      在讲【阵列运算】模块之前,先来说下什么叫做数组?

      C语言标准中规定,一个数组类型描述了连续分配的非空的具有特定元素对象类型的对象集合。这些元素对象的类型称为元素类型(element type)。数组类型由元素类型与元素的数目确定。(摘自维基百科)

      下面的所有涉及到的一些专有名词只是为了方便讲解和理解而引用的,请不要在这些词语上较真,以下我会以我的理解来解释这个【阵列运算】模块的。

      数组简单的理解为数的集合,矩阵也是数组的一种。那么什么是一维数组呢,这样理解吧。

      3.4.6.8.2.1.5.7

      我们可以把这个叫做一维数组。

      二维数组就是矩阵,这里就不说了。

      在以下所有举例中,程序的测试效果图我就不发了,但是每个程序都是经过我亲自测试的。

 

二、【阵列模块】的四种模式

LEGO EV3【阵列运算】模块参考讲解
      一共四种模式,附加模式,读取索引,写入索引,长度。在四种模式下有数字和逻辑两种,这里只讲数字,逻辑就不讲了,避免重复。

 

三、【阵列运算】附加模式讲解

LEGO EV3【阵列运算】模块参考讲解
      附加模式是指在原数组后面添加数字,记住这里只能是添加在后面。比如初始的数组是:【
2.1.4.3】。那么现在我现在要添加一个数字5,那么新的数组就是【2.1.4.3.5】。如下图:

LEGO EV3【阵列运算】模块参考讲解
      具体例子结合读取索引模式会比较好。

 

四、【阵列运算】读取索引模式讲解

LEGO EV3【阵列运算】模块参考讲解
      首先要说明下索引的含义,索引指的是地址,从0开始计数,0、1、2、3……这样开始的,索引相当于地址。

LEGO EV3【阵列运算】模块参考讲解
      我制作了一个表格,相信这这样会好理解点,比如我现在要读取索引是2,那么对应读取的数字就是6;如果要读取索引是1,那么对应的数字为3。

      在这里需要说明的是索引是从0开始的,

      是从0开始的,

      是从0开始的,

      切记切记。

      读取索引呢,也就是读取其中的某个索引对应的数字,然后输出这个数字,我们来举个例子看下:

LEGO EV3【阵列运算】模块参考讲解
      这个程序,首先写入一个简单的一维数组:【3.2】。然后在这数组后面添加了一个数字2,于是组成了一个新的数组:【3.2.2】。然后读取这个新数组中索引为0的数字,也就是3,然后通过切换模块的计数功能,将3个数字输入进去,这是程序运行会直接读出Three这个英文单词的声音,而不是其他。

LEGO EV3【阵列运算】模块参考讲解
      现在我将索引改成了2,上图红圈内。那么程序运行会读出那个数字的声音呢,同样,我们是在:【3.2.2】这个数组中读取索引2对应的数字,这个对应的数字是2,那么程序将发出Two的声音。

      同理,如果我们把索引改成0,那么将发出Three这个声音。

LEGO EV3【阵列运算】模块参考讲解
      这时,我将索引改成3,那么会什么情况呢。程序运行将出现警告的声音,为什么呢?

      因为在这个新数组中,没有索引3对应的数字,我们的新数组是【3.2.2】,索引依次为0.1.2,不存在索引3,所以发出了警告的声音。

 

五、【阵列运算】写入索引

LEGO EV3【阵列运算】模块参考讲解
      理解了读取索引,我相信写入索引就很简单了,也就是往一个数组里面,添加一个索引,这样就会改变原来索引对应的数字。

      比如,还是这个数组:【3.2】,这个简单的一维数组,只有两个数字,即0.1两个索引。那么现在我要写入一个索引1,对应的数字为4,那么新组成的数组为:【3.4】。也就是说写入的索引对应的数字会将原有的索引对应的数字给替换掉,而不是增加数组的个数,这里是写入,不是附加。

      如果我要写入一个索引0,对应的数字为6,那么新组成的数组为:【6.2】,即新写入的数字6成为了新的索引0对应的数字,而之前索引0对应的数字3将不存在,是不是不好理解,我会通过一个表格来解释下:

LEGO EV3【阵列运算】模块参考讲解
      我们来举个例子:

LEGO EV3【阵列运算】模块参考讲解
      这个程序,依旧是数组:【3.2】。然后添加了一个新的索引2,对应的数字为0,组成的新数组为【3.2.0】。那么我现在要读取索引2对应的数字0,但是在切换模块下,并没有数字0对应的声音,不过默认的是1的声音One,所以该程序执行,发出的声音是One。

      如果这个时候,改动读取的索引5,那么程序执行将发出警告的声音,因为不存在索引5。

      我们再来看一个例子:

LEGO EV3【阵列运算】模块参考讲解
      这个程序是,首先是一个数组:【
7.1】。然后写入一个新的索引1对应数字3,那么组成的一个新数组是【7.3】。但这个时候我们要读取这个新数组索引为2的对应数字,我们会发现程序无法执行,发出了警告的声音,原因很简单,因为没有不存在索引2。

      如果我们将读取的索引值改为1,新数组中索引1对应的数字是3,在切换模块中数字3对应的声音模块发出的声音是Three,那么程序将发出Three的声音,如下图:

LEGO EV3【阵列运算】模块参考讲解
六、【阵列运算】长度

LEGO EV3【阵列运算】模块参考讲解
      其实这个比较简单啦,就是数组的长度。我们来举个例子,如下图:

LEGO EV3【阵列运算】模块参考讲解
      这是一个只有单个数字【1】的数组,现在我想了解它的长度,程序执行后在屏幕上显示的数字是1,也就是说这个空数组的长度是1个单位。

      现在我将数组改成【1.2.3.4.5】,那么这个数组的长度就是5了。如下图:

LEGO EV3【阵列运算】模块参考讲解
      如果是一个空的数组,那么长度为0。

      好了,关于【阵列运算】模块,就讲到这里了,希望有需要的朋友能够看懂,如果您发现有哪个地方讲的不好,或者有差错,请在公众号下面回复告诉我,感激不尽。