Controlo#

Introdução#

Os blocos de controlo no VEXcode VR gerem o fluxo de um projeto, lidando com loops, condições e atrasando a execução de outros blocos.

Um ciclo ocorre quando um computador repete o mesmo passo ou grupo de passos continuamente até receber a instrução de paragem. Uma condição é uma regra que o computador verifica para decidir o que fazer a seguir. Por exemplo, um robô pode avançar se um sensor detetar um objeto.

Segue abaixo a lista dos blocos disponíveis:

  • wait – Faz uma pausa na execução de blocos durante uma duração específica.

  • wait until – Suspende a execução de blocos até que uma condição especificada seja satisfeita.

  • repeat – Repete um conjunto de blocos um número específico de vezes.

  • para sempre – Repete um conjunto de blocos indefinidamente.

  • repetir até – Repete um conjunto de blocos até que uma condição seja satisfeita.

  • while – Repete um conjunto de blocos enquanto uma condição se mantiver verdadeira.

  • if – Executa um conjunto de blocos se uma condição for verdadeira.

  • if / else – Executa um conjunto de blocos se uma condição for verdadeira, caso contrário, executa outro.

  • if / else if / else – Executa diferentes conjuntos de blocos consoante múltiplas condições.

  • break – Sai imediatamente de um ciclo repeat, forever, repeat until, ou while.

  • parar projeto – Encerra o projeto.

espera#

O bloco de pilha wait pausa a execução de outros blocos durante um período específico antes de passar para o bloco seguinte.

bloco de pilha de espera#
aguardar (1) segundos

Parâmetros

Descrição

hora

O tempo de espera, expresso como um número inteiro positivo ou decimal em segundos.

Exemplo

Ao ser iniciado, o dispositivo avança por um segundo e depois pára completamente.#
quando iniciar :: hat events
[Move forward for one second, then stop.]
conduzir [frente v]
aguardar (1) segundos
parar de conduzir

espere até#

O bloco de pilha esperar até interrompe a execução de outros blocos até que uma condição específica seja satisfeita, antes de avançar para o bloco seguinte.

aguarde até que o bloco de pilha#
aguardar até <>

Parâmetros

Descrição

estado

A condição que deve ser satisfeita antes de passar para o bloco seguinte.

Exemplo

Ao ser iniciado, o dispositivo avança até que o ecrã seja pressionado, interrompendo então todo o movimento.#
quando iniciar :: hat events
[Move forward until a button is pressed, then stop.]
conduzir [frente v]
aguardar até <[LeftBumper v] pressionado?>
parar de conduzir

repetir#

O bloco repeat C executa os blocos internos um determinado número de vezes.

bloco de repetição c#
repetir [10]
fim

Parâmetros

Descrição

vezes

Um número inteiro que define quantas vezes o bloco repeat é executado.

Exemplo

quando iniciar :: hat events
[Move in a square path.]
repetir [4]
conduzir [frente v] por [150] [mm v] ▶
virar [direita v] por [90] graus ▶
fim

para sempre#

O bloco C eterno continua a executar os blocos internos repetidamente, sem parar.

bloco c para sempre#
para sempre
fim

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

Ao ser iniciado, o dispositivo move-se continuamente numa trajetória quadrada, avançando 50 mm e rodando 90 graus para a direita, num ciclo infinito.#
quando iniciar :: hat events
[Move in a square path forever.]
para sempre
conduzir [frente v] por [150] [mm v] ▶
virar [direita v] por [90] graus ▶
fim

Repita até#

O bloco repeat until em C executa os blocos internos repetidamente enquanto a condição especificada não for satisfeita.

Repita até o bloco#
repetir até <>
fim

Parâmetros

Descrição

estado

Uma expressão ou variável que é verificada antes de cada iteração do ciclo. Se for False, os blocos continuam a repetir-se. Se for True, o ciclo será interrompido.

Exemplo

Ao ser iniciado, mantém todos os LEDs vermelhos até que o ecrã seja pressionado, depois desliga-os.#
quando iniciar :: hat events
[Move the pen until the bumper is pressed.]
conduzir [frente v]
repetir até <[LeftBumper v] pressionado?>
mover caneta [descer v]
aguardar (0.5) segundos
mover caneta [subir v]
aguardar (0.5) segundos
fim
aguardar (0.5) segundos
parar de conduzir

enquanto#

O bloco while em C executa os blocos internos repetidamente enquanto a condição especificada for satisfeita.

enquanto o bloco c#
enquanto <>
fim

Parâmetros

Descrição

estado

Uma expressão ou variável que é verificada antes de cada iteração do ciclo. Se for Verdadeira, os blocos continuam a repetir-se. Se for Falsa, o ciclo será interrompido.

Exemplo

Ao ser acionado, o dispositivo avança 200 mm mantendo todos os LEDs acesos de cor verde. Os LEDs apagam-se após a paragem do movimento.#
quando iniciar :: hat events
[Display a message while moving.]
conduzir [frente v] por [300] [mm v] ◀ e não aguardar
enquanto <condução em movimento?>
imprimir [Moving...] ▶
aguardar (0.1) segundos
limpar todas as linhas
fim
imprimir [Done!] ▶

se#

O bloco if em C executa os blocos internos se a condição for verdadeira.

se bloco#
se <> então
fim

Parâmetros

Descrição

estado

Uma expressão ou variável que é verificada quando a instrução é executada. Se for Verdadeira, os blocos dentro do bloco if serão executados. Se for Falsa, os blocos serão ignorados.

Exemplo

Ao ser iniciado, o robô verifica continuamente se o ecrã está pressionado. Se estiver, pontapeia um objeto com uma força média.#
quando iniciar :: hat events
[Turn in a circle if the bumper is pressed.]
conduzir [frente v]
para sempre
se <[LeftBumper v] pressionado?> então
conduzir [inverso v] por (200) [mm v] ▶
virar [direita v] por (360) graus ▶
fim
parar de conduzir
fim

se / senão#

O bloco C if / else determina qual o conjunto de blocos que será executado com base no valor Verdadeiro ou Falso da condição.

bloco se então senão#
se <> então
senão
fim

Parâmetros

Descrição

estado

Uma expressão ou variável que é verificada quando a instrução é executada. Se for Verdadeira, os blocos dentro do bloco if serão executados. Se for Falsa, serão executados os blocos dentro do bloco else.

Exemplo

Ao ser iniciada, a aplicação verifica continuamente se o ecrã está pressionado. Se estiver pressionada, exibe um emoji animado a olhar em frente; caso contrário, exibe um emoji aborrecido a olhar em frente.#
quando iniciar :: hat events
[If bumper pressed, reverse and turn right.]
para sempre
se <[LeftBumper v] pressionado?> então
conduzir [inverso v] por (100) [mm v] ▶
virar [direita v] por (90) graus ▶
senão
conduzir [frente v]
fim

se / senão se / senão#

O bloco C expansível if / else if / else seleciona qual o conjunto de blocos que será executado com base em determinadas condições:

  • if runs its block of code if the condition evaluates as True.

  • else if checks additional conditions only if all previous conditions evaluated as False. Multiple else if statements can be used.

  • else executa o seu bloco de código apenas se nenhuma das condições anteriores for avaliada como Verdadeira.

bloco if else if else#
se <> então
senão se <> então
senão
fim

Parâmetros

Descrição

estado

Uma expressão ou variável que é verificada quando a instrução é executada. A primeira condição que for Verdadeira executa este conjunto de blocos. Se todas as condições forem avaliadas como Falsas, os blocos dentro do bloco else serão executados.

Exemplo

Quando a posição do eixo 1 do controlador muda, este move-se para a frente se for empurrado para a frente, para trás se for puxado para trás e para quando está em posição neutra.#
quando iniciar :: hat events
[Turn right if the an Eye Sensor detects red, left if it detects green, and continue driving if anything else.]
para sempre
se <[FrontEye v] detecta [vermelho v]?> então
virar [direita v] por (90) graus ▶
senão se <[FrontEye v] detecta [verde v]?> então
virar [esquerda v] por (90) graus ▶
senão
conduzir [frente v]
fim
fim

pausa#

O bloco de pilha break termina um ciclo imediatamente. Este bloco pode ser utilizado dentro dos blocos repeat, repeat until, while e forever. Break é útil quando um loop precisa de ser interrompido prematuramente devido a algo que acontece durante a execução, como um botão a ser pressionado ou um sensor que deteta um objeto.

bloco de pilha de quebra#
interromper

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

Ao ser iniciado, os LEDs piscam a vermelho e verde a cada 0,5 segundos até que o ecrã seja pressionado, e depois param.#
quando iniciar :: hat events
[Stop turning after a button is pressed.]
para sempre
conduzir [frente v]
se <[LeftBumper v] pressionado?> então
interromper
fim
fim
parar de conduzir

projeto de interrupção#

O bloco de pilha stop project termina um projeto em execução.

interromper o bloqueio do projeto#
parar projeto

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

Ao ser iniciado, os LEDs piscam a vermelho e verde a cada 0,5 segundos até que o ecrã seja pressionado; em seguida, o projeto é interrompido.#
quando iniciar :: hat events
[Stop the project entirely after a button is pressed.]
para sempre
conduzir [frente v]
se <[LeftBumper v] pressionado?> então
parar projeto
fim
fim