Operators#
Introduction#
The Operators blocks in VEXcode CTE handle mathematical calculations and string manipulations. These blocks allow for performing arithmetic, evaluating conditions, and processing text.
Below is a list of available blocks:
math operator – Performs addition, subtraction, multiplication, or division.
comparison operator – Compares two values using greater than, less than, or equal operators.
logical operator – Evaluates multiple conditions using and or or.
not operator – Inverts a Boolean value.
range operator – Checks if a number falls within a range.
pick random – Generates a random number within a specified range.
round number – Rounds a number to the nearest whole number.
math functions – Applies operations such as square root, trigonometry, logarithms, and exponentiation.
atan2 – Computes the inverse tangent of y/x.
remainder – Returns the remainder of a division operation.
join – Combines two strings into one.
letter – Extracts a character from a string by position.
length – Returns the number of characters in a string.
contains – Checks if a string includes a specific word or character.
convert – Converts a number into text, a whole number, or a decimal.
math operator#
The math operator block performs basic arithmetic on the values placed on either side. It returns a result based on the project’s print precision, which defaults to 0 decimal places but can be adjusted using the set print precision block.
([0] [math_plus v] [0])
Parameters |
Description |
|---|---|
value 1 |
The first number used in the operation. |
operator |
The mathematical operator to use:
|
value 2 |
The second number used in the operation. |
Example
when started
[Perform basic addition and show two decimal places.]
set print precision to [0.01 v]
print ([10] [math_plus v] [10.5]) on console ▶
comparison operator#
The comparison operator block returns a Boolean indicating whether the comparison between two values is true or false.
True– The comparison is correct (e.g., 5 > 3 returns True).False– The comparison is incorrect (e.g., 2 ≥ 5 returns False).
<[0] [math_equal v] [0]>
Parameter |
Description |
|---|---|
value 1 |
The first value to compare. |
operator |
The comparison to use:
|
value 2 |
The second value to compare. |
Example
when started
[Increment until passed x = 90.]
repeat until <([arm v] position [x v] in [mm v] :: custom-arm) [math_greater_than v] [200]>
increment [arm v] position by x:[50] y:[0] z:[0] [mm v] ▶
logical operator#
The logical operator block returns a Boolean indicating whether the logical condition between multiple values is true or false.
True – The logic condition is met.
False – The logic condition is not met.
<<> [and v] <>>
Parameter |
Description |
|---|---|
condition 1 |
The first Boolean condition to evaluate. |
operator |
The logical operator to use:
|
condition 2 |
The second Boolean condition to evaluate. |
Example
when started
[Increment arm if it is able to do so.]
forever
if <<[arm v] is done moving?> [and v] <[arm v] increment position by x:[50] y:[0] z:[0] [mm v]?>> then
increment [arm v] position by x:[50] y:[0] z:[0] [mm v] ▶
end
end
not operator#
The not operator block inverts the result of a Boolean block. If the input is True, it returns False, and if the input is False, it returns True.
True – The input condition would normally return False.
False – The input condition would normally return True.
<not <>>
Parameter |
Description |
|---|---|
condition |
The Boolean condition to be inverted. |
Example
when started
[Rotate end effector until facing 90 degrees.]
repeat until <not <([arm v] orientation [yaw v] in degrees) [math_less_than v] [90]>>
increment [arm v] orientation by [yaw v] [30] degrees ▶
range operator#
The range operator block returns a Boolean indicating whether a value falls within a specified range.
True – If the value is within the range.
False – If the value is outside the range.
<[0] [math_less_than v] [0] [math_less_than v] [0]>
Parameter |
Description |
|---|---|
first operator |
The comparison operator to use:
|
value |
The value to check. |
second operator |
The comparison operator to use:
|
Example
when started
[Move arm until y position is passed 150 mm.]
forever
if <[-5] [math_less_than v] ([arm v] position [y v] in [mm v] :: custom-arm) [math_less_than v] [150]> then
print [Moving!] on console ◀ and set cursor to next row
increment [arm v] position by x:[0] y:[50] z:[0] [mm v] ▶
else
print [Done moving!] on console ▶
break
pick random#
The pick random block returns a random integer within the specified range.
pick random [1] to [10]
Parameters |
Description |
|---|---|
min |
The lowest possible number that can be picked. |
max |
The highest possible number that can be picked. |
Examples
when started
[Display a number between 1 and 10.]
print (pick random [1] to [10]) on console ▶
round number#
The round number block returns the given number rounded to the nearest whole number, following standard rounding rules:
If the decimal is 0.5 or greater, the number rounds up.
If the decimal is less than 0.5, the number rounds down.
(round [0] to [0] decimal places)
Parameter |
Description |
|---|---|
number |
The number to round. |
decimal places |
The amount of decimals places to round to. |
Example
when started
[Display the rounded result of 10 / 3.]
set print precision to [0.01 v]
print (round ([10] [math_division v] [3]) to [1] decimal places) on console ▶
math functions#
The math functions block applies a selected mathematical function to a given number and returns the result. It supports operations such as absolute value, rounding, square roots, trigonometric functions, logarithms, and exponentiation.
[abs v] of [0]
Parameter |
Description |
|---|---|
function |
The mathematical operation to apply to the input value:
|
number |
The number to apply the function to. |
Example
when started
[Display the square root of 16.]
print ([sqrt v] of [16]) on console ▶
atan2#
The atan2 block returns the inverse tangent of Y/X as an angle in degrees, representing the angle between the positive X-axis and the point (X, Y).
(atan2 of x:[4] y:[3])
Parameter |
Description |
|---|---|
x |
The horizontal position of the point, measured from the origin (0,0). |
y |
The vertical position of the point, measured from the origin (0,0). |
Example
when started
[Calculate the angle from current position (4, 3).]
print (atan2 of x:[4] y:[3]) on console ▶
remainder#
The remainder block returns the remainder of the division operation between two values.
(remainder of [0] / [0])
Parameter |
Description |
|---|---|
dividend |
The number to be divided. |
divisor |
The number to divide by. |
Example
when started
[Display the remainder of 10 / 3.]
print (remainder of [10] / [3]) on console ▶
join#
The join block returns a single string that combines two or more input strings.
(join [apple] [banana])
parameter |
description |
|---|---|
string 1 |
The first string to combine. |
string 2 |
The second string to combine. |
when started
[Display "VEXcode" in the Console.]
print (join [VEX] [code]) on console ▶
letter#
The letter returns a single-character string from the specified position in the given string.
(letter [1] of [apple])
parameter |
description |
|---|---|
position |
The position of the character in the string (starting at 1). |
string |
The string to extract a letter from. |
when started
[Display the first letter of "Robot".]
print (letter (1) of [Robot]) on console ▶
length#
The length block returns the number of characters in the specified string, including spaces.
(length of [apple])
parameter |
description |
|---|---|
string |
The string to measure the length of. |
Example
when started
[Count the number of characters in "VEX Robotics".]
print (length of [VEX Robotics]) on console ▶
contains#
The contains block returns a Boolean indicating whether the specified string includes the given word or character.
True– The string includes that specific word or character.False– The string does not include that specific word or character.
<[apple] contains [a]?>
parameter |
description |
|---|---|
string |
The main string to search within. |
search term |
The word or character to check for inside the string. |
Example
when started
[Check if "robotics" contains "bot".]
if <[robotics] contains [bot]?> then
print [The word contains "bot".] on console ▶
else
print [Not found.] on console ▶
end
convert#
The convert block returns the value of a number converted to the specified type, either as text or a number.
text – Converts the number to a string. Numbers must be in string format to work with String Operator blocks.
number – Converts the number to a decimal (floating-point) value.
(convert [0] to [text v])
parameter |
description |
|---|---|
value |
The number to convert. |
type |
The type to convert the number into:
|
Example
Example coming soon.