Interruptor#

Introdução#

Os blocos Switch ajudam os alunos a fazer a transição da programação baseada em blocos para a programação baseada em texto. Com os blocos Switch, os alunos podem digitar código Python diretamente dentro de um projeto de blocos — escrevendo comandos, condições, valores ou definições de funções — enquanto continuam a construir o resto do projeto com blocos. Os blocos individuais também podem ser convertidos para os seus comandos Python equivalentes.

Para aprender a digitar comandos, métodos e operadores Python, consulte a API Python VEX EXP.

Como os blocos Switch contêm código Python, a ortografia, a pontuação e a indentação devem estar corretas para que o projeto funcione como esperado.

Abaixo segue uma lista de todos os blocos Switch:

Blocos de alternância — Adicione código Python a um projeto Blocks.

  • Pilha — Fornece um espaço para digitar comandos Python que são executados em sequência com outros blocos de pilha.

  • Bloco C — Fornece um espaço para digitar código de controlo Python, como if, whileou for instruções.

  • C Expandível — Fornece um espaço para digitar código de controlo Python com várias ramificações, como if, elif, ou else.

  • Booleano — Fornece um espaço para digitar código Python que retorna True ou False.

  • Reporter — Fornece um espaço para digitar código Python que devolve um valor.

  • Chapéu — Disponibiliza um espaço para definir uma função Python.

Monte#

O bloco Stack disponibiliza um espaço para digitar comandos Python que são executados em sequência com outros blocos Stack.

Bloco de pilha#
[] :: custom-switch

Um bloco Stack pode conter uma ou várias linhas de código Python.

Quando é iniciado, utiliza um bloco Stack para avançar, aguardar e, em seguida, parar.#
quando iniciar :: hat events
[Drive forward, then stop.]
[drivetrain.drive(FORWARD)] :: custom-switch
aguardar [2] segundos
parar de conduzir

Bloco C#

O Bloco C disponibiliza um espaço para digitar código de controlo Python, como por exemplo instruções if, whileou for . Os blocos colocados dentro do Bloco C são executados como parte desta estrutura de controlo Python.

Bloco C#
if [] :: custom-switch
fim

O código de controlo em Python que pode ser utilizado num Bloco C inclui:

Quando é iniciado, utiliza um bloco C para avançar quando o ecrã é pressionado.#
quando iniciar :: hat events
[Drive forward when the screen is pressed.]
para sempre
if [if brain.screen.pressing():] :: custom-switch
conduzir [frente v] por [200] [mm v] ▶
fim
fim

C Expansível#

O bloco C Expansível fornece um espaço para digitar código de controlo Python com múltiplas ramificações, como if, elifou elsePodem ser adicionadas ramificações adicionais selecionando a seta de adição.

Bloco expansível C#
if [] :: custom-switch-expand
fim

O código de controlo Python que pode ser utilizado num bloco expansível em C inclui:

Quando é iniciado, utiliza um bloco expansível em C para virar à direita quando o ecrã é pressionado e à esquerda caso contrário.#
quando iniciar
[Turn right when the screen is pressed, otherwise turn left.]
para sempre
if [if brain.screen.pressing():] :: custom-switch-expand
virar [direita v]
else [else:] :: custom-switch-expand
virar [esquerda v]
fim
fim

Booleano#

O bloco Booleano disponibiliza um espaço para digitar código Python que retorna True ou False. Pode ser colocado dentro de blocos com entradas hexagonais.

Bloco booleano#
<[] :: custom-switch>

Um bloco Booleano pode conter uma condição em Python.

Bloco booleano com uma condição em Python#
<[bumper_a.is_pressed()] :: custom-switch>

Um bloco booleano pode também utilizar operadores lógicos:

Bloco booleano com um operador lógico em Python#
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>

Um bloco Booleano pode utilizar operadores de comparação para comparar valores:

  • Maior que: >

  • Menor que: <

  • Igual a: ==

  • Outros operadores de comparação incluem <=, !=, e >=

Bloco booleano com um operador de comparação em Python#
<[drivetrain.get_heading()> 100] :: custom-switch>
Quando é iniciado, utiliza um bloco booleano para avançar sempre que o ecrã é pressionado.#
quando iniciar :: hat events
[Drive forward whenever the screen is pressed.]
para sempre
se <[brain.screen.pressing()] :: custom-switch> então
conduzir [frente v] por [200] [mm v] ▶
fim
fim

Repórter#

O bloco Reporter disponibiliza um espaço para digitar código Python que devolve um valor. Pode ser colocado dentro de blocos com entradas circulares.

Bloco de repórteres#
([] :: custom-switch)

Um bloco Reporter pode conter código Python que devolve um valor.

Bloco de relatórios com código Python que devolve um valor#
([drivetrain.rotation()] :: custom-switch)

Os operadores matemáticos podem ser utilizados num bloco Reporter:

  • Adição: +

  • Subtração: -

  • Divisão: /

  • Multiplicação: *

Bloco repórter com adição em Python#
([drivetrain.rotation() + 45] :: custom-switch)
Quando é iniciado, imprime a rotação da transmissão enquanto o robô gira.#
quando iniciar :: hat events
[Display the rotation while turning.]
virar [direita v] por [450] graus ◀ e não aguardar
para sempre
limpar todas as linhas
imprimir ([drivetrain.rotation()] :: custom-switch) ▶
aguardar [0.1] segundos
fim

Chapéu#

O bloco Chapéu disponibiliza um espaço para definir uma função Python. Os blocos anexados abaixo do Chapéu tornam-se o corpo dessa função.

Bloco de chapéu#
[] :: hat custom-switch

Introduza a definição de uma função Python no bloco Hat. Os parâmetros devem estar dentro dos parênteses. Se a função não utilizar parâmetros, utilize parênteses vazios.

Bloco de chapéu com uma definição de função Python#
[def function_name(parameter):] :: hat custom-switch
Quando é iniciado, utiliza um bloco Hat para definir e chamar uma função.#
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
conduzir [frente v] por (400) [mm v] ▶

quando iniciar :: hat events
[drive_400()] :: custom-switch