Operadores#
Introducción#
Los bloques Operator en VEXcode AIM ayudan al robot a trabajar con números y palabras. Estos bloques pueden resolver problemas matemáticos, comparar valores, evaluar si las condiciones son verdaderas o falsas y trabajar con cadenas. Las cadenas se pueden usar para imprimir valores y palabras.
A continuación se muestra una lista de bloques disponibles:
operador matemático: realiza sumas, restas, multiplicaciones o divisiones.
operador DE comparación – Compara dos valores usando operadores mayores que, menores que o iguales a.
operador lógico – Evalúa múltiples condiciones usando and o or.
not operator – Invierte un valor booleano.
operador DE rango – Comprueba si un número se encuentra dentro de un rango.
elegir aleatorio – Genera un número aleatorio dentro de un rango especificado.
Round number – Redondea un número al número entero más cercano.
funciones matemáticas: aplica operaciones como la raíz cuadrada, la trigonometría, los logaritmos y la exponenciación.
atan2 – Calcula la tangente inversa de y/x.
Remanente – Informa el resto de una operación de división.
join – Combina dos cadenas en una.
letter – Extrae un carácter de una cadena por posición.
length – 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 indicador * * operador matemático * * realiza operaciones matemáticas básicas en los valores colocados a cada lado del operador. Devuelve un resultado basado en la precisión de impresión del proyecto, que por defecto es 0 decimales, pero se puede ajustar utilizando los bloques set print precision on screen o set print precision on console.
([0] [math_plus v] [0])
Parámetros |
Descripción |
|---|---|
value 1 |
El primer número utilizado en la operación. |
operador |
El operador matemático a utilizar:
|
value 2 |
El segundo número utilizado en la operación. |
Ejemplo
cuando inicie
[Perform basic addition and show two decimal places.]
establecer precisión de impresión a [0.01 v] en pantalla
imprimir ([10] [math_plus v] [10.5]) en pantalla ▶
operador de comparación#
El operador de comparación bloque booleano informa si la comparación entre dos valores es Verdadero o Falso.
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 |
|---|---|
value 1 |
El primer valor a comparar. |
operador |
La comparación para usar:
|
value 2 |
El segundo valor a comparar. |
Ejemplo
cuando inicie
[Turn right until the heading reaches 90 degrees.]
girar [derecha v]
esperar [0.05] segundos
esperar hasta <(rumbo en grados) [math_greater_than v] [90]>
detener todo movimiento
operador lógico#
El operador lógico bloque booleano informa si la condición lógica entre múltiples valores es Verdadero o Falso.
Verdadero: se cumple la condición lógica.
Falso: no se cumple la condición lógica.
<<> [y v] <>>
Parámetro |
Descripción |
|---|---|
condición 1 |
La primera condición booleana a verificar. |
operador |
El operador lógico a utilizar: y informa Verdadero si ambas condiciones son Verdadero. o informa Verdadero si al menos una condición es Verdadero. |
condición 2 |
La segunda condición booleana a verificar. |
Ejemplo
cuando inicie
[Kick a held sports ball when the screen is pressed.]
por siempre
si <<¿tiene [pelota deportiva v]? :: custom-ai-vision> [y v] <¿pantalla presionada?>> entonces
patear objeto [fuerte v]
no operador#
El bloque booleano * * not operator * * invierte el resultado de un bloque booleano. Si la entrada es Verdadero, informa Falso, y si la entrada es Falso, informa Verdadero.
Verdadero: la condición de entrada normalmente informaría Falso.
Falso: la condición de entrada normalmente informaría Verdadero.
<no <>>
Parámetro |
Descripción |
|---|---|
condición |
La condición booleana a invertir. |
Ejemplo
cuando inicie
[Turn until a sports ball or barrel is detected.]
por siempre
obtener datos [toda la carga v] de AI Vision
si <no <¿existe objeto de AI Vision?>> entonces
girar [derecha v]
si no
detener todo movimiento
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:
|
value |
El valor a verificar. |
segundo operador |
El operador de comparación a utilizar:
|
Ejemplo
cuando inicie
[Move forward and report when out of bounds.]
mover [adelante v] por [100] [mm v] ◀ y no esperar
por siempre
limpiar pantalla
mover cursor a fila [1] columna [1] en pantalla
si <[25] [math_less_than v] (posición de [y v] en [mm v]) [math_less_than v] [75]> entonces
imprimir [In Bounds.] en pantalla ▶
si no
imprimir [Out of Bounds!] en pantalla ▶
elegir 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.
número aleatorio entre [1] y [10]
Parámetros |
Descripción |
|---|---|
min |
El número más bajo posible que se puede elegir. |
max |
El número más alto posible que se puede elegir. |
Ejemplos
cuando inicie
[Display a number between 1 and 10.]
imprimir (número aleatorio entre [1] y [10]) en pantalla ▶
cuando inicie
[Display a decimal number between 1 and 10.5.]
establecer precisión de impresión a [Todos los dígitos v] en pantalla
imprimir (número aleatorio entre [1] y [10.5]) en pantalla ▶
número redondo#
El bloque de reportero * * 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.
Si el decimal es menor que 0.5, el número se redondea hacia abajo.
(redondear [0] a [0] decimales)
Parámetro |
Descripción |
|---|---|
número |
El número a redondear. |
posiciones decimales |
La cantidad de decimales a redondear. |
Ejemplo
cuando inicie
[Display the rounded result of 10 / 3.]
establecer precisión de impresión a [0.01 v] en pantalla
imprimir (redondear ([10] [math_division v] [3]) a [1] decimales) en pantalla ▶
funciones matemáticas#
El bloque indicador * * funciones matemáticas * * aplica una función matemática seleccionada a un número determinado y devuelve el resultado. Admite operaciones como valor absoluto, redondeo, raíces cuadradas, funciones trigonométricas, logaritmos y exponenciación.
([abs v] de [0] :: operators)
Parámetro |
Descripción |
|---|---|
función |
La operación matemática a aplicar al valor de entrada:
|
número |
El número al que aplicar la función. |
Ejemplo
cuando inicie
[Display the square root of 16.]
imprimir ([sqrt v] de [16] :: operators) en pantalla ▶
atan2#
El bloque indicador * * atan2 * * informa de 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 de[4] x: y:[3])
Parámetro |
Descripción |
|---|---|
x |
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
cuando inicie
[Calculate the angle from current position (4, 3).]
imprimir (atan2 de[4] x: y:[3]) en pantalla ▶
resto#
El bloque de informe resto informa el resto de la operación de división entre dos valores.
(resto de [0] / [0] :: operators)
Parámetro |
Descripción |
|---|---|
dividendo |
El número a dividir. |
divisor |
El número por el que dividir. |
Ejemplo
cuando inicie
[Display the remainder of 10 / 3.]
imprimir (resto de [10] / [3] :: operators) en pantalla ▶
unirse#
El bloque de informe join informa una única cadena que combina dos cadenas de entrada.
(unir [apple] [banana])
parámetro |
descripción |
|---|---|
cadena 1 |
La primera cadena en combinar. |
cadena 2 |
La segunda cadena a combinar. |
cuando inicie
[Display "VEXcode" on the screen.]
imprimir (unir [VEX] [code]) en pantalla ▶
carta#
El bloque reportero * * letter * * informa de una cadena de un solo carácter desde la posición especificada en la cadena dada.
(letra [1] de [apple] :: operators)
parámetro |
descripción |
|---|---|
cargo |
La posición del carácter en la cadena (a partir de 1). |
cadena |
La cadena de la que extraer una letra. |
cuando inicie
[Display the first letter of "Robot".]
imprimir (letra (1) de [Robot] :: operators) en pantalla ▶
longitud#
El bloque de informe length informa el número de caracteres en la cadena especificada, incluidos los espacios.
(longitud de [apple] :: operators)
parámetro |
descripción |
|---|---|
cadena |
La cadena para medir la longitud de. |
Ejemplo
cuando inicie
[Count the number of characters in "VEX Robotics".]
imprimir (longitud de [VEX Robotics] :: operators) en pantalla ▶
contiene#
El bloque booleano * * contiene * * informes sobre si la cadena especificada incluye la palabra o el carácter dados.
Verdadero: la cadena incluye esa palabra o carácter específico.
Falso: la cadena no incluye esa palabra o carácter específico.
<¿[apple] contiene [a]?>
parámetro |
descripción |
|---|---|
cadena |
La cadena principal para buscar dentro. |
término de búsqueda |
La palabra o el carácter que se debe comprobar dentro de la cadena. |
Ejemplo
cuando inicie
[Check if "robotics" contains "bot".]
si <¿[robotics] contiene [bot]?> entonces
imprimir [The word contains "bot".] en pantalla ▶
si no
imprimir [Not found.] en pantalla ▶
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 en un valor decimal.
(convertir [0] a [texto v])
parámetro |
descripción |
|---|---|
value |
El número a convertir. |
tipo |
El tipo en el que convertir el número: text convierte el valor en una cadena, y number convierte el valor en un decimal. |
Ejemplo
cuando inicie
[Add any number to 5.]
preguntar [Give me a number.] y esperar
imprimir ((convertir (respuesta) a [número v]) [math_plus v] [5]) en pantalla ▶