Operadores#
Introducción#
Los bloques de operador en VEXcode IQ (2.ª generación) ayudan al robot a trabajar con números y palabras. Estos bloques pueden resolver problemas matemáticos, comparar valores, evaluar si ciertas condiciones son verdaderas o falsas y trabajar con cadenas de texto. Las cadenas de texto se pueden usar para imprimir valores y palabras.
A continuación se muestra una lista de bloques disponibles:
operador matemático – Realiza suma, resta, multiplicación o división.
operador de comparación – Compara dos valores utilizando los operadores mayor que, menor que o igual que.
operador lógico – Evalúa múltiples condiciones usando y o o.
operador no – Invierte un valor booleano.
operador de rango – Comprueba si un número cae dentro de un rango.
pick random – Genera un número aleatorio dentro de un rango especificado.
número redondo – Redondea un número al número entero más cercano.
funciones matemáticas – Aplica operaciones como raíz cuadrada, trigonometría, logaritmos y exponenciación.
atan2 – Calcula la tangente inversa de y/x.
resto – Informa el resto de una operación de división.
join – Combina dos cadenas en una.
letra – Extrae un carácter de una cadena por posición.
longitud – Informa el número de caracteres en una cadena.
contiene – Comprueba si una cadena incluye una palabra o carácter específico.
convert – Convierte un número en texto, un número entero o un decimal.
operador matemático#
El bloque de informe operador matemático realiza operaciones matemáticas básicas con los valores colocados a ambos lados del operador. Devuelve un resultado basado en la precisión de impresión del proyecto, que por defecto es de 0 decimales, pero se puede ajustar mediante los bloques establecer precisión de impresión en pantalla o establecer precisión de impresión en consola.
([0] [math_plus v] [0])
Parámetros |
Descripción |
|---|---|
valor 1 |
El primer número utilizado en la operación. |
operador |
El operador matemático a utilizar:
|
valor 2 |
El segundo número utilizado en la operación. |
Ejemplo
when started
[Perform basic addition and show two decimal places.]
set print precision to [0.01 v] on screen
print ([10] [math_plus v] [10.5]) on screen ▶
operador de comparación#
El bloque booleano operador de comparación informa si la comparación entre dos valores es verdadera o falsa.
Verdadero – La comparación es correcta (por ejemplo, 5 > 3 devuelve Verdadero).
Falso – La comparación es incorrecta (por ejemplo, 2 ≥ 5 devuelve Falso).
<[0] [math_equal v] [0]>
Parámetro |
Descripción |
|---|---|
valor 1 |
El primer valor a comparar. |
operador |
La comparación a utilizar:
|
valor 2 |
El segundo valor a comparar. |
Ejemplo
when started
[Turn right until the heading reaches 90 degrees.]
turn [right v]
wait [0.5] seconds
wait until <(drive heading in degrees) [math_greater_than v] [90]>
stop driving
operador lógico#
El bloque booleano operador lógico informa si la condición lógica entre varios valores es verdadera o falsa.
Verdadero – Se cumple la condición lógica.
Falso – No se cumple la condición lógica.
<<> [and v] <>>
Parámetro |
Descripción |
|---|---|
condición 1 |
La primera condición booleana a evaluar. |
operador |
El operador lógico a utilizar: y devuelve Verdadero si ambas condiciones son Verdaderas. o devuelve Verdadero si al menos una condición es Verdadera. |
condición 2 |
La segunda condición booleana a evaluar. |
Ejemplo
when started
[Display if the ◀ and ▶ buttons are pressed.]
forever
clear screen
set cursor to row [1] column [1] on screen
if <<Brain [ %2 %3> then
print [Buttons pressed!] on screen ▶
fin
fin
no operador#
El bloque booleano not operator invierte el resultado de un bloque booleano. Si la entrada es True, devuelve False, y si la entrada es False, devuelve True.
Verdadero – La condición de entrada normalmente reportaría Falso.
Falso – La condición de entrada normalmente reportaría Verdadero.
<not <>>
Parámetro |
Descripción |
|---|---|
condición |
La condición booleana que se debe invertir. |
Ejemplo
when started
[Turn until the robot is facing left. ]
forever
if <not <(drive heading in degrees) [math_greater_than v] [270]>> then
turn [right v]
else
stop driving
operador de rango#
El bloque booleano operador de rango indica si un valor se encuentra dentro de un rango especificado.
Verdadero – Si el valor está dentro del rango.
Falso – Si el valor está fuera del rango.
<[0] [math_less_than v] [0] [math_less_than v] [0]>
Parámetro |
Descripción |
|---|---|
primer operador |
El operador de comparación a utilizar:
|
valor |
El valor a comprobar. |
segundo operador |
El operador de comparación a utilizar:
|
Ejemplo
when started
[Turn and display when facing forward or back. ]
turn [right v] for [360] degrees ◀ and don't wait
forever
clear screen
set cursor to row [1] column [1] on screen
if <[270] [math_greater_than v] (drive heading in degrees) [math_greater_than v] [90]> then
print [Facing backward!] on screen ▶
else
print [Facing forward!] on screen ▶
elige al azar#
El bloque de informe selección aleatoria genera un número aleatorio positivo o negativo entre un mínimo y un máximo. Puede devolver tanto el valor mínimo como el máximo. Por ejemplo, al seleccionar un valor entre 1 y 10, se puede devolver cualquier número entero del 1 al 10.
pick random [1] to [10]
Parámetros |
Descripción |
|---|---|
mín. |
El número más bajo posible que se puede elegir. |
máximo |
El número más alto que se puede elegir. |
Ejemplos
when started
[Display a number between 1 and 10.]
print (pick random [1] to [10]) ▶
número redondo#
El bloque de informe número redondo informa el número dado redondeado al número entero más cercano, siguiendo las reglas de redondeo estándar:
Si el decimal es 0,5 o mayor, el número se redondea hacia arriba.
Si el decimal es menor que 0,5, el número se redondea hacia abajo.
(round [0] to [0] decimal places)
Parámetro |
Descripción |
|---|---|
número |
El número a redondear. |
decimales |
La cantidad de decimales a redondear. |
Ejemplo
when started
[Display the rounded result of 10 / 3.]
set print precision to [0.01 v] on screen
print (round ([10] [math_division v] [3]) to [1] decimal places) on screen ▶
funciones matemáticas#
El bloque de informe de funciones matemáticas aplica una función matemática seleccionada a un número dado y devuelve el resultado. Admite operaciones como valor absoluto, redondeo, raíces cuadradas, funciones trigonométricas, logaritmos y exponenciación.
[abs v] of [0]
Parámetro |
Descripción |
|---|---|
función |
La operación matemática que se aplicará al valor de entrada:
|
número |
El número al que se aplicará la función. |
Ejemplo
when started
[Display the square root of 16.]
print ([sqrt v] of [16]) on screen ▶
atan2#
El bloque de informe atan2 informa la tangente inversa de Y/X como un ángulo en grados, que representa el ángulo entre el eje X positivo y el punto (X, Y).
(atan2 of x:[4] y:[3])
Parámetro |
Descripción |
|---|---|
incógnita |
La posición horizontal del punto, medida desde el origen (0,0). |
y |
La posición vertical del punto, medida desde el origen (0,0). |
Ejemplo
when started
[Calculate the angle from current position (4, 3).]
print (atan2 of x:[4] y:[3]) on screen ▶
resto#
El bloque de informe resto informa el resto de la operación de división entre dos valores.
(remainder of [0] / [0])
Parámetro |
Descripción |
|---|---|
dividendo |
El número a dividir. |
divisor |
El número por el que se dividirá. |
Ejemplo
when started
[Display the remainder of 10 / 3.]
print (remainder of [10] / [3]) on screen ▶
unirse#
El bloque de informe join informa una única cadena que combina dos cadenas de entrada.
(join [apple] [banana])
parámetro |
descripción |
|---|---|
cadena 1 |
La primera cadena a combinar. |
cuerda 2 |
La segunda cadena a combinar. |
when started
[Display "VEXcode" on the screen.]
print (join [VEX] [code]) on screen ▶
carta#
El bloque de informe letter informa una cadena de un solo carácter desde la posición especificada en la cadena dada.
(letter [1] of [apple])
parámetro |
descripción |
|---|---|
posición |
La posición del carácter en la cadena (comenzando en 1). |
cadena |
La cadena de la que se extraerá una letra. |
when started
[Display the first letter of "Robot".]
print (letter (1) of [Robot]) on screen ▶
longitud#
El bloque de informe length informa el número de caracteres en la cadena especificada, incluidos los espacios.
(length of [apple])
parámetro |
descripción |
|---|---|
cadena |
La cuerda para medir la longitud de. |
Ejemplo
when started
[Count the number of characters in "VEX Robotics".]
print (length of [VEX Robotics]) on screen ▶
contiene#
El bloque booleano contiene indica si la cadena especificada incluye la palabra o el carácter dado.
Verdadero – La cadena incluye esa palabra o carácter específico.
Falso – La cadena no incluye esa palabra o carácter específico.
<[apple] contains [a]?>
parámetro |
descripción |
|---|---|
cadena |
La cadena principal dentro de la cual se realizará la búsqueda. |
término de búsqueda |
La palabra o carácter que se buscará dentro de la cadena. |
Ejemplo
when started
[Check if "robotics" contains "bot".]
if <[robotics] contains [bot]?> then
print [The word contains "bot".] on screen ▶
else
print [Not found.] on screen ▶
fin
convertir#
El bloque de informe convertir informa el valor de un número convertido al tipo especificado, ya sea como texto o como número.
texto – Convierte el número en una cadena de texto. Los números deben estar en formato de cadena de texto para poder trabajar con los bloques Operador de cadena.
número – Convierte el número a un valor decimal.
(convert [0] to [text v])
parámetro |
descripción |
|---|---|
valor |
El número a convertir. |
tipo |
El tipo en el que se convertirá el número:
|
Ejemplo
when started
[Display the robot's heading as it turns.]
turn [right v]
forever
clear screen
set cursor to row [1] column [1] on screen
print (join [Currently facing: ] (convert ([BrainInertial v] heading in degrees) to [text v])) on screen ▶
wait [0.1] seconds
fin