Control#

Introducción#

En VEXcode, los bloques de control gestionan el flujo de un proyecto manejando bucles, condiciones y retrasando la ejecución de otros bloques.

Un bucle se produce cuando un ordenador repite el mismo paso o grupo de pasos una y otra vez hasta que se le indica que se detenga. Una condición es una regla que el ordenador comprueba para decidir qué hacer a continuación. Por ejemplo, una luz puede encenderse si el brazo mueve un objeto.

A continuación se muestra una lista de los bloques disponibles:

  • espera – Pausa la ejecución de bloques durante una duración específica.

  • esperar hasta – Pausa la ejecución de los bloques hasta que se cumpla una condición específica.

  • repetir – Repite un conjunto de bloques un número específico de veces.

  • para siempre – Repite un conjunto de bloques indefinidamente.

  • repetir hasta – Repite un conjunto de bloques hasta que se cumpla una condición.

  • mientras – Repite un conjunto de bloques mientras una condición permanece verdadera.

  • if – Ejecuta un conjunto de bloques si una condición es verdadera.

  • if / else – Ejecuta un conjunto de bloques si una condición es verdadera, de lo contrario ejecuta otro.

  • if / else if / else – Ejecuta diferentes conjuntos de bloques dependiendo de múltiples condiciones.

  • break – Sale inmediatamente de un bucle repeat, forever, repeat until o while.

  • detener proyecto – Finaliza el proyecto.

esperar#

El bloque de pila wait pausa la ejecución de los bloques durante un tiempo determinado antes de pasar al siguiente bloque.

bloque de pila de espera#
esperar (1) segundos

Parámetros

Descripción

tiempo

El tiempo de espera, expresado como un número entero positivo o decimal en segundos.

Ejemplo

Al ponerse en marcha, avanza durante un segundo y luego detiene todo movimiento.#
cuando empezó
[Move to the left, then the right after one second.]
incrementar la posición [brazo v] en x:[100] y:[0] z:[0] [mm v] ▶
esperar (1) segundos
incrementar la posición [brazo v] en x:[-100] y:[0] z:[0] [mm v] ▶

espera hasta#

El bloque de pila esperar hasta pausa la ejecución de los bloques hasta que se cumpla una condición específica antes de pasar al siguiente bloque.

esperar hasta que se bloquee la pila#
esperar hasta <>

Parámetros

Descripción

condición

La condición que debe cumplirse antes de pasar al siguiente bloque.

repetir#

El bloque repeat de C ejecuta los bloques que contiene un número determinado de veces.

repetir bloque c#
repetir [10]
fin

Parámetros

Descripción

veces

Un número entero que indica cuántas veces se ejecuta el bloque repetir.

Ejemplo

cuando empezó
[Move in a square pattern.]
repetir [4]
incrementar la posición [brazo v] en x:[2] y:[0] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[0] y:[2] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[-2] y:[0] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[0] y:[2] z:[0] [pulgadas v] ▶
fin

para siempre#

El bloque C para siempre sigue ejecutando los bloques que contiene una y otra vez sin parar.

bloque C para siempre#
para siempre
fin

Parámetros

Descripción

Este bloque no tiene parámetros.

Ejemplo

Una vez puesto en marcha, se mueve continuamente en una trayectoria cuadrada avanzando 50 mm y girando 90 grados a la derecha en un bucle infinito.#
cuando empezó
[Move in a square path forever.]
para siempre
incrementar la posición [brazo v] en x:[2] y:[0] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[0] y:[2] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[-2] y:[0] z:[0] [pulgadas v] ▶
incrementar la posición [brazo v] en x:[0] y:[2] z:[0] [pulgadas v] ▶
fin

repetir hasta#

El bloque repetir hasta C ejecuta repetidamente los bloques que contiene mientras no se cumpla la condición especificada.

repetir hasta bloquear#
repetir hasta <>
fin

Parámetros

Descripción

condición

Una expresión o variable que se comprueba antes de cada iteración del bucle. Si es falsa, los bloques se repiten continuamente. Si es verdadera, el bucle se detiene.

Ejemplo

Al encenderse, mantiene todos los LED en rojo hasta que se pulsa la pantalla, momento en el que se apagan.#
cuando empezó
[Increment along the x-axis until it's no longer possible.]
repetir hasta <no <[brazo v] incremento de posición por x:[100] y:[0] z:[0] [mm v]?>>
incrementar la posición [brazo v] en x:[100] y:[0] z:[0] [mm v] ▶
fin
Establecer [brazo v] para controlar la detención

mientras#

El bloque while de C ejecuta repetidamente los bloques que contiene mientras se cumpla la condición especificada.

mientras que el bloque c#
mientras <>
fin

Parámetros

Descripción

condición

Una expresión o variable que se comprueba antes de cada iteración del bucle. Si es Verdadera, los bloques se repiten. Si es Falsa, el bucle se detiene.

Ejemplo

Una pila de bloques que comienza con un bloque when started, seguido de un bloque de comentarios que indica que se mostrará el tiempo transcurrido después de 2 segundos. Un bloque wait until pausa la ejecución hasta que el temporizador alcance o supere los dos segundos. Una vez que se cumple esta condición, un bloque print muestra el valor del temporizador en la pantalla.#
cuando empezó
[Display the 6-Axis Arm's position as it moves.]
mover [brazo v] a la posición x:(-100) y:(200) z:(100) [mm v] ◀ y no esperes
mientras <no <[brazo v] ya termino de moverme?>>
imprimir ([brazo v] posición [y v] en [mm v]) en la consola ◀ y coloque el cursor en la siguiente fila
esperar [0.25] segundos

si#

El bloque if de C ejecuta los bloques que contiene si la condición es verdadera.

si se bloquea#
si <> entonces
fin

Parámetros

Descripción

condición

Una expresión o variable que se comprueba al ejecutar la instrucción. Si es Verdadera, se ejecutarán los bloques dentro del bloque if. Si es Falsa, los bloques se omiten.

Ejemplo

cuando empezó
[Check if the 6-Axis Arm can move to a position.]
si <no <[arm v] move to position x:[0] y:[0] z:[0] [mm v] ?>> entonces
imprimir [The 6-Axis Arm can't move to this position.] ◀ y coloque el cursor en la siguiente fila

si / de lo contrario#

El bloque C if / else determina qué conjunto de bloques se ejecuta en función de si la condición es verdadera o falsa.

si entonces si no bloque#
si <> entonces
demás
fin

Parámetros

Descripción

condición

Una expresión o variable que se comprueba al ejecutar la instrucción. Si es Verdadera, se ejecutarán los bloques dentro del bloque if. Si es Falsa, se ejecutarán los bloques dentro del bloque else.

Ejemplo

cuando empezó
[Check if the 6-Axis Arm can or can't move to a position.]
si <no <[arm v] move to position x:[100] y:[100] z:[100] [mm v] ?>> entonces
imprimir [The 6-Axis Arm can't move to this position.] en la consola ◀ y coloque el cursor en la siguiente fila
demás
imprimir [The 6-Axis Arm can move to this position.] en la consola ◀ y coloque el cursor en la siguiente fila

si / si no si / si no#

El bloque C expandible if / else if / else selecciona qué conjunto de bloques se ejecuta en función de las condiciones:

  • if ejecuta su bloque de código si la condición se evalúa como Verdadera.

  • else if comprueba condiciones adicionales solo si todas las condiciones anteriores se evaluaron como falsas. Se pueden utilizar varias sentencias else if.

  • else ejecuta su bloque de código solo si ninguna de las condiciones anteriores se evaluó como Verdadera.

si si no si no bloque#
si <> entonces
de lo contrario si <> entonces
demás
fin

Parámetros

Descripción

condición

Una expresión o variable que se comprueba al ejecutar la instrucción. La primera condición que sea Verdadera ejecuta ese conjunto de bloques. Si todas las condiciones se evalúan como Falsas, se ejecutarán los bloques dentro del bloque else.

Ejemplo

cuando empezó
[Move until the 6-Axis Arm is at the corner of the tile.]
si <[brazo v] incremento de posición por x:[50] y:[0] z:[0] [mm v]?> entonces
incrementar la posición [brazo v] en x:[50] y:[0] z:[0] [mm v] ▶
de lo contrario si <[brazo v] incremento de posición por x:[0] y:[50] z:[0] [mm v]?> entonces
incrementar la posición [brazo v] en x:[0] y:[50] z:[0] [mm v] ▶
demás
imprimir [The 6-Axis Arm has reached the corner.] en la consola ◀ y coloque el cursor en la siguiente fila

romper#

El bloque break de la pila sale de un bucle inmediatamente. Este bloque se puede usar dentro de los bloques repeat, repeat until, while y forever. Break es útil cuando un bucle necesita detenerse prematuramente debido a algún evento que ocurre durante el proyecto, como presionar un botón o que un sensor detecte un objeto.

bloque de pila de ruptura#
romper

Parámetros

Descripción

Este bloque no tiene parámetros.

proyecto detenido#

El bloque de pila stop project finaliza un proyecto en ejecución.

Bloqueo de proyecto de parada#
detener el proyecto

Parámetros

Descripción

Este bloque no tiene parámetros.