【EV3基础编程 第四课】机器人编程的基础,先要学这些(下)
通过上两周的课程,我们基本学习了顺序、循环两种流程。简单回忆一下,顺序,其实就是基本的流程;而循环,是一种特殊的“顺序”,也就是一段会自动重复的顺序,需要设计停止循环的条件。
应该不算难,我们继续说今天的。这节课比较重要,有点长。
1判断流程
在我们的软件中,这个流程叫做“切换”。我们这里统一一下名词,就叫做“判断”吧。因为大家以后学习程序语言的时候,这种流程就叫做判断。
可以这样理解,我们原来说的顺序,是一条笔直的路。而判断就像是在笔直的路上面形成了一个岔口。
岔口可以是两个,也可以是多个。
当程序执行到这里的时候,会根据某些条件,自己选择一条路继续前进。
可以说,这是跟“顺序”和“循环”不同的一种流程。我们学习EV3可以不用太多的专用名词,这里我们尽量用简单理解的语言来形容各个要点。
2是非判断
是非判断,就像是我们平时作业里面的是非题。
二选其一,非黑即白。这种很基本的选择项,在编程中经常使用。并且条件设定要求低,不容易产生错误和实际误差。
生活中,这种判断行为无处不在。并且往往能非常好的表达出目的性。
我们来看一个很简单的思维。
有1/2/3/5/8/13/21,7个门。
看到数字1/2/3/5,开门,看到数字8/13/21不开门。
那么我们如果需要跟别人说明一下这个问题,该如何表达呢?
最准确的表达方式,肯定就是把这个题面重新读一遍给别人。因为每一个具体的数字对应的动作表达的非常清晰。
而什么叫做是非判断?即二选其一。我们就可以说:小于8的数字开门;大于等于8的数字不开门。
我们会发现,如果仅仅只是要表达这个题面,那么这种表达是很简单的。
但是!(注意重点)
是非判断等于是把数据分成了两个大类。看似达到的目的是相同的,但其实逻辑上是不同的。
因为我们的第二种表达方式,其实是包含了4/7这样的体面中没有的数字,而从8开始到无限大的数字也都包含进去了。
为什么这里可以选择这样来表达?
那是因为题面已经有明确的限制了。我们只是在这个限制条件下选择了一种更方便的表达方式,而不是更准确的。
是非判断往往用在能够归类的情况下,或者其本身就是用来进行一种归类。
这个知识点是初中(有些其他省市的是高中)数学里面的“集合”部分。我们暂时不拓展了。大家必须要清楚知道这里面的关系。
可以用,并不等于准确!
3选择判断
选择判断,类似于我们在平时学习中碰到的多选题。可以选择一个,也可以多选。往往选项有很多个。
比如,看到绿灯停,看到红灯行,看到黄灯加快行驶。
那么我们的程序就可以这样来编写。
红、黄、绿是三种准确的数据信息,他们各对应了一个“动作”。我们可以用选择判断,来把这个程序写清楚。
从理论上来说,很简单,
但是!
(我又来了)
我们要考虑到现实生活中的情况,EV3机器人不是单纯的理论学习,我们必须要学会把问题尽可能的分析透彻。
我们会发现,现实中,我们碰到的颜色岂止这三种!那么问题来了,当看到其他颜色的时候,我们该怎么办呢?这个时候,我们就会发现,程序中其实是有Bug(漏洞)的。
机器人不会自己去分析哪个指令是错误的。所以,当我们的程序有错误产生的时候,它就会一直沿着一条错误的路径走下去。我们要帮助它把问题“想完全”。
这里的Bug其实就是除这三种颜色之外的颜色,应该对应一个什么动作?
4是非判断和选择判断的结合运用
这两种流程我们日常使用的时候经常是混在一块用的。
是非判断,可以帮助我们进行某些数据归类。
选择判断,可以准确的定义数据的作用。
我们还是就上一段的红绿灯问题来看。
其实我们的思路可以是:
首先,把3种颜色,和其他颜色进行一个归类。看到这三种颜色,和没看到这三种颜色的两种情况先分离开来。
然后,再把三种颜色对应的动作定义出来。
这样,这个程序结构,其实就非常清楚了。如下
我们要学会归类,同时要学会选择定义。
重点总结
了解程序的三大流程,理解判断流程
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com