运算符#

简介#

VEXcode AIM 中的运算符指令块用于处理数学计算与字符串操作。这类指令块可执行算术运算、条件判断以及文本处理等功能。

以下列表是可用的指令块:

  • 数学运算符 – 执行加法、减法、乘法或除法。

  • 比较运算符 – 使用大于、小于或等于运算符比较两个值。

  • 逻辑运算符 – 使用 and 或 or 评估多个条件。

  • 非运算符 – 反转布尔值。

  • 范围运算符 – 检查数字是否在某个范围内。

  • 随机选择 – 生成指定范围内的随机数。

  • 取整 – 将数字四舍五入为最接近的整数。

  • 数学函数 – 应用平方根、三角、对数和指数等运算。

  • atan2 – 计算 y/x 的反正切。

  • 取余 – 返回除法运算的余数。

  • 连接 – 将两个字符串合并为一个。

  • 提取字符 – 按位置从字符串中提取字符。

  • 长度 – 返回字符串中的字符数。

  • 是否包含 – 检查字符串是否包含特定的单词或字符。

  • 类型转换 – 将数字转换为文本、整数或小数。

数学运算符#

数学运算符 指令块对放置在两侧的值执行基本算术运算。它会根据程序的打印精度返回结果,该精度默认为小数点后 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

要计算的第一个布尔条件。

运算符

可使用的逻辑运算符:

  • 与 - 仅当两个条件都为真时返回真。3
  • 或 - 要至少一个条件为真即返回真。

条件 2

要计算的第二个布尔条件。

示例

当开始
[Kick a held sports ball when the screen is pressed.]
永久循环
如果 <<有 [运动球 v] 吗?> [and v] <屏幕按下了?>> 那么
[大力 v] 踢出对象

非运算符#

非运算符 指令块用于对布尔指令块的结果进行取反。如果输入为 True,则返回 False;如果输入为 False,则返回 True。

  • True – 输入条件通常会返回 False。

  • False – 输入条件通常会返回 True。

非运算符布尔指令块。#
<非 <>>

参数

描述

条件

要反转的布尔条件。

示例

当开始
[Turn until a sports ball or barrel is detected.]
永久循环
从 AI 视觉仪获取 [所有货物 v] 数据
如果 <非 <AI 视觉仪对象存在?>> 那么
[右 v] 转
否则
停止移动

范围运算符#

范围运算符块返回一个布尔值,指示某个值是否在指定范围内。

  • True – 如果值在范围内。

  • False – 如果值超出范围。

范围运算符布尔块。#
<[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] 之间选随机数

参数

描述

最小

可被选取的最小数值。

最大

可被选取的最大数值。

示例

当开始
[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]

参数

描述

函数

对输入值应用的数学运算:

  • abs - 绝对值
  • floor - 向下取整
  • ceiling - 向上取整
  • sqrt - 平方根
  • sin - 正弦
  • cos - 余弦
  • tan - 正切
  • asin - 反正弦
  • acos - 反余弦
  • atan - 反正切
  • ln - 自然对数
  • log - 以 10 为底的对数
  • e^ - 欧拉数的幂
  • 10^ - 10 的幂
  • negative - 返回数字的负数

数字

需应用该函数的数值。

示例

当开始
[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] 取余)▶

连接#

连接 指令块可将两个或多个输入字符串合并,并返回一个单一的字符串。

连接报告指令块。#
(连接 [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] 长度)▶

是否包含#

是否包含指令块返回一个布尔值,用于判断指定字符串中是否包含给定的词或字符。

  • True(是) — 字符串中包含该特定词或字符。

  • False(否) — 字符串中不包含该特定词或字符。

是否包含布尔指令块。#
<[apple] 包含 [a]?>

参数

描述

字符串

被搜索的主字符串。

搜索项

需要在字符串中查找的词或字符。

示例

当开始
[Check if "robotics" contains "bot".]
如果 <[robotics] 包含 [bot]?> 那么
在屏幕上打印 [The word contains "bot".]▶
否则
在屏幕上打印 [Not found.]▶
结束

类型转换#

类型转换指令块可将数值转换为指定的类型(文本或数字),并返回转换后的值。

  • text(文本) – 将数字转换为字符串。数字需转换为字符串格式后方可与字符串运算符指令块配合使用。

  • number(数字) — 将数字转换为十进制(浮点)数值。

类型转换报告指令块。#
(转换 [0] 为 [文本 v])

参数

描述

需要转换的原始数字。

类型

将数字转换为的类型:

  • 文本
  • 数字

示例

当开始
[Add any number to 5.]
询问 [Give me a number.] 并等待
在屏幕上打印 ((转换 (应答) 为 [数字 v]) [math_plus v] [5])▶