运算符#
简介#
VEXcode AIM 中的操作模块可以帮助机器人处理数字和文字。这些模块可以解决数学问题、比较数值、判断条件真假以及处理字符串。字符串可以用来打印数值和文字。
以下列表是可用的指令块:
数学运算符 – 执行加法、减法、乘法或除法。
比较运算符 – 使用大于、小于或等于运算符比较两个值。
逻辑运算符 – 使用 and 或 or 评估多个条件。
非运算符 – 反转布尔值。
范围运算符 – 检查数字是否在某个范围内。
随机选择 – 生成指定范围内的随机数。
取整 – 将数字四舍五入为最接近的整数。
数学函数 – 应用平方根、三角、对数和指数等运算。
atan2 – 计算 y/x 的反正切。
余数 – 报告除法运算的余数。
连接 – 将两个字符串合并为一个。
提取字符 – 按位置从字符串中提取字符。
length – 报告字符串中的字符数。
是否包含 – 检查字符串是否包含特定的单词或字符。
类型转换 – 将数字转换为文本、整数或小数。
数学运算符#
数学运算符 报告块对运算符两侧的值执行基本数学运算。它根据项目的打印精度返回结果,默认为 0 位小数,但可以使用 设置屏幕打印精度 或 设置控制台打印精度 块进行调整。
([0] [math_plus v] [0])
参数 |
描述 |
|---|---|
值 1 |
运算中使用的第一个数字。 |
运算符 |
可使用的数学运算符:
|
值 2 |
运算中使用的第二个数字。 |
示例
当开始
[Perform basic addition and show two decimal places.]
在屏幕上设定打印精度为 [0.01 v]
在屏幕上打印 ([10] [math_plus v] [10.5])▶
比较运算符#
比较运算符布尔块报告两个值之间的比较结果是真还是假。
正确 – 比较结果正确(例如,5 > 3 返回 正确)。
错误 – 比较不正确(例如,2 ≥ 5 返回 错误)。
<[0] [math_equal v] [0]>
参数 |
描述 |
|---|---|
值 1 |
要比较的第一个值。 |
运算符 |
可使用的比较:
|
值 2 |
要比较的第二个值。 |
示例
当开始
[Turn right until the heading reaches 90 degrees.]
[右 v] 转
等待 [0.05] 秒
等到 <(归位角度值) [math_greater_than v] [90]>
停止移动
逻辑运算符#
逻辑运算符布尔块报告多个值之间的逻辑条件是真还是假。
正确 – 逻辑条件已满足。
错误 – 逻辑条件不满足。
<<> [and v] <>>
参数 |
描述 |
|---|---|
条件 1 |
首先要检查的是布尔条件。 |
运算符 |
要使用的逻辑运算符:and 如果两个条件都为True,则结果为True。or 如果至少一个条件为True,则结果为True。 |
条件 2 |
要检查的第二个布尔条件。 |
示例
当开始
[Kick a held sports ball when the screen is pressed.]
永久循环
如果 <<有 [运动球 v] 吗?> [and v] <屏幕按下了?>> 那么
[大力 v] 踢出对象
非运算符#
非运算符布尔块会反转另一个布尔块的结果。如果输入为真,则返回假;如果输入为假,则返回真。
正确 – 输入条件通常会报告 错误。
错误 – 输入条件通常会报告 正确。
<非 <>>
参数 |
描述 |
|---|---|
条件 |
要反转的布尔条件。 |
示例
当开始
[Turn until a sports ball or barrel is detected.]
永久循环
从 AI 视觉仪获取 [所有货物 v] 数据
如果 <非 <AI 视觉仪对象存在?>> 那么
[右 v] 转
否则
停止移动
范围运算符#
范围运算符布尔块报告一个值是否在指定的范围内。
真 – 如果该值在范围内。
错误 – 如果该值超出范围。
<[0] [math_less_than v] [0] [math_less_than v] [0]>
参数 |
描述 |
|---|---|
第一个操作符 |
可使用的比较运算符:
|
值 |
要检查的值。 |
第二个操作符 |
可使用的比较运算符:
|
示例
当开始
[Move forward and report when out of bounds.]
将 [向前 v] 移至 [100] [毫米 v] ◀ 并且不等待
永久循环
清屏
在屏幕上设定光标至 [1] 行 [1] 列
如果 <[25] [math_less_than v] ([y v] 转位 [毫米 v]) [math_less_than v] [75]> 那么
在屏幕上打印 [In Bounds.]▶
否则
在屏幕上打印 [Out of Bounds!]▶
随机数选择#
“随机选择”报告模块会报告一个介于最小值和最大值之间的随机正数或负数。它可以同时返回最小值和最大值。例如,选择 1 到 10 可以返回 1 到 10 之间的任意整数。
在 [1] 到 [10] 之间选随机数
参数 |
描述 |
|---|---|
最小 |
可被选取的最小数值。 |
最大 |
可被选取的最大数值。 |
示例
当开始
[Display a number between 1 and 10.]
在屏幕上打印 (在 [1] 到 [10] 之间选随机数)▶
当开始
[Display a decimal number between 1 and 10.5.]
在屏幕上设定打印精度为 [All Digits v]
在屏幕上打印 (在 [1] 到 [10.5] 之间选随机数)▶
取整数值#
“四舍五入”报告模块会根据标准舍入规则,将给定的数字四舍五入到最接近的整数:
若小数部分大于或等于 0.5,则向上舍入。
若小数部分小于 0.5,则向下舍入。
([0] 四舍五入到 [0] 位小数)
参数 |
描述 |
|---|---|
数字 |
需要舍入的原始数值。 |
小数位数 |
指定舍入后保留的小数位数。 |
示例
当开始
[Display the rounded result of 10 / 3.]
在屏幕上设定打印精度为 [0.01 v]
在屏幕上打印 (([10] [math_division v] [3]) 四舍五入到 [1] 位小数)▶
数学函数#
数学函数报告模块将选定的数学函数应用于给定的数字并返回结果。它支持绝对值、四舍五入、平方根、三角函数、对数和指数运算等操作。
[abs v] 的 [0]
参数 |
描述 |
|---|---|
函数 |
对输入值应用的数学运算:
|
数字 |
需应用该函数的数值。 |
示例
当开始
[Display the square root of 16.]
在屏幕上打印 ([sqrt v] 的 [16])▶
atan2#
atan2 报告块以度为单位报告 Y/X 的反正切值,表示正 X 轴与点 (X, Y) 之间的角度。
(atan2 x:[4] y:[3])
参数 |
描述 |
|---|---|
x |
点的水平坐标位置,以原点 (0,0) 为基准测量。 |
y |
点的垂直坐标位置,以原点 (0,0) 为基准测量。 |
示例
当开始
[Calculate the angle from current position (4, 3).]
在屏幕上打印 (atan2 x:[4] y:[3])▶
取余#
余数报告块报告两个值相除运算的余数。
([0] / [0] 取余)
参数 |
描述 |
|---|---|
被除数 |
需要被除的数值。 |
除数 |
要除以的数字。 |
示例
当开始
[Display the remainder of 10 / 3.]
在屏幕上打印 ([10] / [3] 取余)▶
连接#
join 报告块报告一个由两个输入字符串组合而成的字符串。
(连接 [apple] [banana])
参数 |
描述 |
|---|---|
字符串 1 |
第一个要合并的字符串。 |
字符串 2 |
要合并的第二个字符串。 |
当开始
[Display "VEXcode" on the screen.]
在屏幕上打印 (连接 [VEX] [code])▶
提取字符#
字母报告块报告给定字符串中指定位置的单个字符字符串。
([apple] 的第 [1] 个字符)
参数 |
描述 |
|---|---|
位置 |
字符串中字符的位置(从 1 开始)。 |
字符串 |
需要从中提取字符的原始字符串。 |
当开始
[Display the first letter of "Robot".]
在屏幕上打印 ([Robot] 的第 (1) 个字符)▶
长度#
长度报告块报告指定字符串中的字符数,包括空格。
([apple] 长度)
参数 |
描述 |
|---|---|
字符串 |
要测量长度的字符串。 |
示例
当开始
[Count the number of characters in "VEX Robotics".]
在屏幕上打印 ([VEX Robotics] 长度)▶
是否包含#
contains 布尔块报告指定的字符串是否包含给定的单词或字符。
正确 – 该字符串包含该特定单词或字符。
错误 – 该字符串不包含该特定单词或字符。
<[apple] 包含 [a]?>
参数 |
描述 |
|---|---|
字符串 |
被搜索的主字符串。 |
搜索项 |
需要在字符串中查找的词或字符。 |
示例
当开始
[Check if "robotics" contains "bot".]
如果 <[robotics] 包含 [bot]?> 那么
在屏幕上打印 [The word contains "bot".]▶
否则
在屏幕上打印 [Not found.]▶
结束
类型转换#
convert 报告块会将数字转换为指定类型(文本或数字)后的值进行报告。
text – 将数字转换为字符串。数字必须为字符串格式才能与 字符串运算符 代码块一起使用。
数字 – 将数字转换为十进制值。
(转换 [0] 为 [文本 v])
参数 |
描述 |
|---|---|
值 |
需要转换的原始数字。 |
类型 |
将数字转换为以下类型:text 将值转换为字符串,number 将值转换为十进制数。 |
示例
当开始
[Add any number to 5.]
询问 [Give me a number.] 并等待
在屏幕上打印 ((转换 (应答) 为 [数字 v]) [math_plus v] [5])▶