1、流程控制模块If 模块 If 语句与 if-else 语句if“如果,假如”;else“否则”。在 C 语言中,if 语句测试一个特定的条件。如果该条件为真(即条件成立),一条或一组指令将被执行;否则,这一条或一组指令将不被执行。if-else 语句测试一个特定的条件。如果该条件为真(即条件成立),执行 if 所指向的某一条或一组指令;否则,将执行 else 语句指向的某一条或一组指令。If 模块的使用在 RoboEXP 中,我们使用 If 模块来实现 C 语言中的 if 和 if-else 语句。If 模块图标由 If图标 和 Endif 图标组成。只要把 If 模块拖动到编程区,编程区中就
2、会自动出现 If 图标和 EndIf 图标。使用 If 模块实现 C 语言中的 if 语句,只需通过若干线和模块图标把 If 图标的右边与EndIf 图标的左边连接起来就行了。举一个简单的例子:如果测试的条件为真(即条件成立),执行 Calculate 模块对应的指令;否则不执行 Calculate 模块对应的指令。编程区如下图:使用 If 模块实现 C 语言中的 if-else 语句,只需在上述基础上把 If 图标与 EndIf 图标的下边连接起来就行了。举一个简单的例子:如果测试的条件为真(即条件成立),执行Calculate 模块对应累加 1 的指令;否则执行 Calculate 模块对
3、应累加 2 指令。编程区如下图:与 C 语言的 if 和 if-else 语句相似,If 模块所测试的特定条件是一个逻辑运算或比较运算的表达式(条件表达式),其运算结果只有真和假两种。与 C 语言一样,在 RoboEXP 中用 1 表示真,0 表示假。If 模块的运算符:If 模块中用到的运算符有比较运算符和逻辑运算符。在 RoboEXP 中,用到的算术运算符有五种:+、-、*、/、%,用到的比较运算符有六种:=、=、!=,用到的逻辑运算符有两种:逻辑与return a;return;return b*d+1都是合法的 return 语句。return 语句一般放在函数的结尾,用于终止当前函数
4、的运行,并把控制权转回调用该函数的函数。有时 return 语句也会被放在函数中其它的位置,用于人为地强制终止函数的运行。对于返回空值的函数而言,函数中也可以没有 return 语句。当函数执行完最后一条语句后没有遇到 return 语句时,会隐性执行 return 语句。注意:上面所说的函数也包括主函数 main()函数。Return 模块的使用在 RoboEXP 中,我们使用 Return 模块 来实现 C 语言的 return 语句,用于终止应用程序或子程序的运行。只要把 Return 模块从流程控制库拖动到编程区,然后用线把 Return 图标的左右两边和其它图标连接起来就行了。举一个
5、简单的例子,编程区如下图:在上图的例子程序中,Calculate 模块对应的代码将不会被执行到。Return 模块的设置Return 模块默认是空,即默认返回空值。您可以双击 Return 图标,然后在右侧出现的对话框中设置返回值。如下图:您可以在对话框中输入函数的返回值。return 模块返回的数值类型必须与函数的类型一致。Return 模块应用实例 我们来写一个简单的应用函数,变量 var0、var1 的初值为 0,var0 每次循环递增 1,var1每次循环递增 2,当 var0 大于或等于 10 时结束程序,返回。具体步骤如下:1) 新建一个图形化应用程序;2) 拖动一个 While
6、模块、两个 Calculate 模块、一个 If 模块和一个 Return 模块到编程区,并连线如图所示:3) 参照定义变量相关章节定义两个 unsigned char 型局部变量 var0,var1,设置 While 模块,If 模块;4) 编译该程序,并保存。说明:当 var0=10 时,程序结束,不再运行后面任何程序。流程控制模块CodeEditor 模块 CodeEditor 模块的使用CodeEditor 模块 可算是机器人快车中最简单也是最难使用的模块。把 CodeEditor 模块从流程控制库中拖动到编程区,然后用线把 CodeEditor 图标的左右两边跟其它图标连接起来,如下
7、图:双击 CodeEditor 模块图标,弹出的对话框如下:全局区 一般包括 C 语言编译预处理操作,具体参考相关 C 语言书籍。代码区 与代码编程一致,具体操作参考相关代码编程。最大化编辑 点击后在窗口最右侧出现代码模板工具栏。上图中的代码编辑框跟文本编辑是一样的。CodeEditor 模块的使用必须有一定的 C 语言编程基础,编辑内容必须符合 C 语言的规范,这样程序才能正常运行。必须注意的是,虽然在代码编辑框中输入的 C 语言代码都会被添加到程序中,但是CodeEditor 模块并不影响其它模块的使用,例如在 CodeEditor 模块中定义的变量并不会出现在其它模块的变量选择框中。Co
8、deEditor 模块的应用实例我们来写一个简单的例子程序:启动机器人后,变量从 0 逐步自增到 100。1) 新建一个图形化应用程序文件;2) 拖动 CodeEditor 模块到编程区并连线,如下图:3) 双击 CodeEditor 模块图标,进入属性对话框,在代码区中输入程序;4)编译该程序,并保存。流程控制模块Start 模块 “start“开始” Start 模块的使用 当新建一个图形化应用程序时,编程区会自动生成一个 Start 模块 。Start 模块操作得很简单,只需把它与其他模块连接起来。双击模块图标,可以编辑该模块的提示信息,具体操作与 For 模块相同。4.2 基本编程 4
9、.2.2 线的操作线的默认状态: 红线 模块之间连线正确;灰线 模块之间连线错误。连线规则:按照程序思路,从模块的出口到另外一个模块的入口,系统会自动检测连线的正确和错误。连线方法:鼠标移动到模块上,模块的边角变黑,同时出现连线图标 ,或者直接点击工具栏上该图标,点击后移动鼠标会出现红色虚线,选择合适的路径,移动到另外一个模块入口处,单击,连线完成。技巧:选择合适的线路时,要使虚线在某一点改变方向,单击击鼠标左键;取消此次连线时,单击鼠标右键。如图所示:基本操作:移动 鼠标左键点击该线选中或点击空白点拉虚框选中需要移动的线,同时按住该线拖放到合适位置;删除 鼠标左键点击该线选中,点击工具栏内
10、图标删除,或者直接按键盘上 Delete键;替换 重新划线,系统会自动替换原来模块间连线。4.2 基本编程 4.2.3 变量的定义及操作 基本知识什么是变量大家一定问变量是什么呢?机器人的大脑中存贮空间是有限的,变量就是在机器人的大脑中划一个用来存取数据的空间。为什么要用变量呢?现在我问大家一个问题,大家上学为什么要用书包呢?书包是用来存取书的,同样道理,变量是用来存取数据的。数据类型每个同学的书包有大有小,那么标识大小就是型号。那么变量也是有型号的,但它不叫型号,而叫数据类型。那么在机器人快车中有那些数据类型呢,下面这个对照表就是所有的数据类型。在机器人快车中原则上是,什么样的数据类型变量,
11、存取什么样数据类型的数据。类型 名称 数值范围char 字符型 -128 127int 整型 -32768 32767long 长整型 -2147483648 2147483647unsigned char 无符号字符型 0 255unsigned int 无符号整型 0 65535unsigned long 无符号长整型 0 4294967296double 实数型 5.0*10-324 1.7*10308变量的命名每个同学都有一个书包,如果放在一起,怎么识别自己的书包呢?大家会说做一个标记,对!在程序中,我们会划很多个空间来,那么我怎么去标识它呢?当然就是采用大家常想到的去给它命一个名来标
12、识它。现在就说说机器人快车变量的命名规则了,不然机器人的大脑就乱了。、 所有变量名必须由一个字母(az, AZ)或下划线(_)开头;、 变量名的其它部分可以用字母、下划线或数字(09)组成;、 变量名不能以双下划线开头,也不能以单下划线开头并且结尾,如_aa,_aa_是不正确的;、 大小写字母表示不同意义, 即代表不同的变量;、 变量长度不能超过 32 个字符,注意:一个中文字代表两个字符,建议不使用中文;、 机器人快车中的每个模块内及每个应用程序中的变量不能存在同名。变量的类型局部变量 在一个函数内部定义的变量是内部变量,它只在本函数内有效,也就是说只有在本函数内才能使用他们,在此函数以外是
13、不能使用这些变量的;全局变量 全局变量是在函数外部定义的变量,全局变量可以为文件中其他函数所用。变量的定义菜单栏“视图”“变量窗口”,或直接点击右侧属性、变量代码对话框,出现以下对话框,双击该对话框该对话框在最右侧和小对话框之间切换:根据程序需要选择全局变量或者局部变量,根据变量命名规则输入变量名,选择数值类型,赋初值可以不用赋初值,为方便理解进行变量说明,修改变量名、初值和数据类型变量说明可直接在该对话框中进行。图标说明:新建一个局部变量;删除被选的局部变量;新建一个全局变量:删除被选的全局变量。变量应用实例:求余运算中,带回一个整数和一个余数,利用全局变量和局部变量的性质,使全局变量带回商,局部变量带回余数。详细步骤如下: