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.

El bloque de reporte del operador matemático.#
([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:

  • + - Suma
  • - - Resta
  • * - Multiplicación
  • / - División

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).

El bloque booleano del operador de comparación.#
<[0] [math_equal v] [0]>

Parámetro

Descripción

valor 1

El primer valor a comparar.

operador

La comparación a utilizar:

  • = - Igual a
  • < - Menor que
  • - Menor o igual a
  • > - Mayor que
  • - Mayor o igual a

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.

El bloque del operador lógico booleano.#
<<> [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.

El bloque booleano del operador Not.#
<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.

El bloque booleano del operador de 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:

  • < - Menor que
  • ≤ - Menor o igual que
  • - Mayor que
  • ≥ - Mayor o igual que

valor

El valor a comprobar.

segundo operador

El operador de comparación a utilizar:

  • < - Menor que
  • ≤ - Menor o igual que
  • - Mayor que
  • ≥ - Mayor o igual que

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.

El bloque de reportero Pick Random.#
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.

El bloque de reporteros de Número Redondo.#
(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.

El bloque de reportero de funciones matemáticas.#
[abs v] of [0]

Parámetro

Descripción

función

La operación matemática que se aplicará al valor de entrada:

  • abs - Valor absoluto
  • floor - Redondea hacia abajo
  • ceiling - Redondea hacia arriba
  • sqrt - Raíz cuadrada
  • sin - Seno
  • cos - Coseno
  • tan - Tangente
  • asin - Seno inverso
  • acos - Coseno inverso
  • atan - Tangente inversa
  • ln - Logaritmo natural
  • log - Logaritmo en base 10
  • e^ - Número de Euler elevado a una potencia
  • 10^ - 10 elevado a una potencia
  • negative - Informa el negativo del número

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.

El bloque de reporteros Resto.#
(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.

El bloque de reportero Join.#
(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.

El bloque del reportero de Letter.#
(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.

El bloque reportero de longitud.#
(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.

El bloque Contiene Booleano.#
<[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.

El bloque de reportero Convert.#
(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:

  • texto
  • 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