Контроль#
Введение#
Блоки управления в VEXcode AIM управляют потоком выполнения проекта, обрабатывая циклы, условия и задерживая выполнение блоков.
Цикл — это когда компьютер повторяет один и тот же шаг или группу шагов снова и снова, пока ему не будет дано указание остановиться. Условие — это правило, которое компьютер проверяет, чтобы решить, что делать дальше. Например, робот может двигаться вперед, если датчик обнаружит объект.
Ниже приведён список всех блоков:
wait — Приостанавливает выполнение блоков на определенный период времени.
ждать до — Приостанавливает выполнение блоков до тех пор, пока не будет выполнено указанное условие.
повтор — Повторяет набор блоков определенное количество раз.
навсегда — Повторяет набор блоков бесконечно.
повторять до — Повторяет набор блоков до тех пор, пока не будет выполнено условие.
while — Повторяет набор блоков, пока условие остается истинным.
if — Выполняет набор блоков, если условие истинно.
if / else — Выполняет один набор блоков, если условие истинно, в противном случае — другой.
if / else if / else — Запускает разные наборы блоков в зависимости от нескольких условий.
break — Немедленно выходит из цикла repeat, forever, repeat until или while.
остановить проект — Завершает проект.
ждать#
Блок wait в стеке приостанавливает выполнение блоков на определенное время, прежде чем перейти к следующему блоку.
ждать (1) секунд
Параметры |
Описание |
|---|---|
время |
Время ожидания, выраженное в секундах в виде положительного целого числа или десятичной дроби. |
Пример
при запуске
[Move forward for one second, then stop.]
движение [вперёд v]
ждать (1) секунд
остановить все движения
подождите, пока#
Блок wait until в стеке приостанавливает выполнение блоков до тех пор, пока не будет выполнено указанное условие, после чего переходит к следующему блоку.
ждать пока <>
Параметры |
Описание |
|---|---|
состояние |
Условие, которое должно быть выполнено, прежде чем перейти к следующему блоку. |
Пример
при запуске
[Move forward until screen pressed, then stop.]
движение [вперёд v]
ждать пока <экран нажат?>
остановить все движения
повторить#
Блок repeat C выполняет блоки внутри себя заданное количество раз.
повторить [10]
конец
Параметры |
Описание |
|---|---|
времена |
Целое число, определяющее, сколько раз будет выполняться блок повторов. |
Пример
при запуске
[Move in a square path.]
повторить [4]
движение [вперёд v] на [50] [мм v] ▶
поворот [вправо v] на [90] градусов ▶
конец
навсегда#
Блок C, работающий бесконечно, продолжает запускать находящиеся внутри него блоки снова и снова без остановки.
вечно
конец
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске
[Move in a square path forever.]
вечно
движение [вперёд v] на [50] [мм v] ▶
поворот [вправо v] на [90] градусов ▶
конец
повторять до тех пор, пока#
Блок C repeat until многократно запускает находящиеся в нем блоки до тех пор, пока не будет выполнено указанное условие.
повторять пока <>
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется перед каждым циклом. Если она ложная, блоки продолжают повторяться. Если она истинная, цикл останавливается. |
Пример
при запуске
[Repeat until the screen is pressed before turning off the LEDs.]
повторять пока <экран нажат?>
установить цвет LED [lightall v] [красный v]
конец
установить цвет LED [lightall v] [выкл v]
пока#
Блок while на языке C многократно выполняет находящиеся внутри него блоки, пока выполняется указанное условие.
пока <>
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется перед каждым циклом. Если она истинна, блоки продолжают повторяться. Если она ложна, цикл останавливается. |
Пример
при запуске
[Keep the LEDs green while the robot is moving.]
движение [вперёд v] на [200] [мм v] ◀ и не ждать
пока <движение активно?>
установить цвет LED [lightall v] [зелёный v]
конец
установить цвет LED [lightall v] [выкл v]
если#
Блок if на языке C запускает блоки внутри, если условие истинно.
если <> то
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Если она истинна, блоки внутри блока if будут выполнены. Если она ложна, блоки пропускаются. |
Пример
при запуске
[Kick when the screen is pressed.]
вечно
если <экран нажат?> то
ударить объект [средний v]
конец
конец
если / иначе#
Блок if / else в языке C определяет, какой набор блоков будет выполняться в зависимости от того, является ли условие истинным или ложным.
если <> то
иначе
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Если она истинна, будут выполнены блоки внутри блока if. Если она ложна, будут выполнены блоки внутри блока else. |
Пример
при запуске
[Show one emoji when the screen is touched and a different one when it's not.]
вечно
если <экран нажат?> то
показать [emoji_excited v] смотрящего [вперёд v]
иначе
показать [emoji_bored v] смотрящего [вперёд v]
конец
конец
если / иначе если / иначе#
Расширяемый блок C if / else if / else выбирает, какой набор блоков будет выполняться в зависимости от условий:
Функция
ifвыполняет свой блок кода, если условие оценивается какTrue.Оператор else if проверяет дополнительные условия только в том случае, если все предыдущие условия были оценены как ложные. Можно использовать несколько операторов else if.
В противном случае блок кода выполняется только в том случае, если ни одно из предыдущих условий не было оценено как истинное.
если <> то
иначе если <> то
иначе
конец
Параметры |
Описание |
|---|---|
состояние |
Выражение или переменная, которая проверяется при выполнении оператора. Первое условие, которое истинно, запускает этот набор блоков. Если все условия ложны, то будут выполнены блоки внутри блока else. |
Пример
когда ось [1 v] контроллера изменилась
[Move the robot forward or reverse based on the position of the joystick.]
если <(положение оси [1 v] контроллера) [math_greater_than v] [0]> то
движение [вперёд v]
иначе если <(положение оси [1 v] контроллера) [math_less_than v] [0]> то
движение [назад v]
иначе
остановить все движения
конец
перерыв#
Блок break в стеке немедленно завершает цикл. Этот блок можно использовать внутри блоков repeat, repeat until, while и forever. Break полезен, когда цикл необходимо остановить досрочно в зависимости от события, происходящего во время выполнения проекта, например, нажатия кнопки или обнаружения объекта датчиком.
прервать
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске
[Flash LEDs until the screen is pressed.]
вечно
установить цвет LED [lightall v] [красный v]
ждать [0.5] секунд
установить цвет LED [lightall v] [зелёный v]
ждать [0.5] секунд
если <экран нажат?> то
прервать
конец
конец
остановить проект#
Блок стека stop project завершает выполнение запущенного проекта.
остановить проект
Параметры |
Описание |
|---|---|
Этот блок не имеет параметров. |
Пример
при запуске
[Stop the project once the screen is pressed.]
вечно
установить цвет LED [lightall v] [красный v]
ждать [0.5] секунд
установить цвет LED [lightall v] [зелёный v]
ждать [0.5] секунд
если <экран нажат?> то
остановить проект
конец
конец