# Обработка



# Логика

### Условные операторы

Условные операторы занимают центральное место в программировании. Они позволяют организовывать ветвления, например:

- Если есть путь, ведущий влево, то сверни влево.
- Если количество баллов = 100, то напечатай «Молодец!».

#### Блоки **«если»**

Простейшим условием является блок **«если»**:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild1-ru.PNG)

При выполнении этого блока значение переменной **x** сравнивается с 100. Если значение переменной **x** превышает 100, выдается фраза «Was für eine große Zahl!» («Какое большое число»)! В противном случае ничего не происходит.

#### Блоки **«если... иначе»**

Также можно указать, что в случае невыполнения условия что-либо не должно происходить, как в этом примере:

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild2-ru.PNG)

Как и в случае с предыдущим блоком, если **x** &gt; 100, выдается фраза «Was für eine große Zahl!». В противном случае выдается фраза «Das ist nicht sehr groß.» («Это не очень большое число.»).

Блок **«если»** может иметь не более одной ветки **«иначе»**.

#### Блоки **«если-иначе-если»**

Ты можешь протестировать несколько условий при помощи одного блока **«если»**, добавив к нему ветку **«иначе**-**если»**:

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild3-ru.PNG)

Сначала блок проверяет, больше ли **x** 100, и выдает «what a great number!», если это так. Если это не так, блок проверяет, равен ли **x** 42. Если да, он выдает «this is my lucky number!» («Это мое счастливое число!»). В противном случае ничего не происходит.

Блок **«если»** может иметь любое количество ветвей **«иначе**-**если»**. Условия анализируются сверху вниз, пока не будет выполнено какое-либо условие или пока не останется ни одного условия.

#### Блоки **«если-иначе-если-иначе»**

Блоки **«если»** могут иметь как ветви **«иначе**-**если»**, так и ветви **«иначе»**:

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild4-ru.PNG)

Ветвь **«иначе»** обеспечивает выполнение действия, даже если не выполняется ни одно из предшествующих условий.

Ветвь **«иначе»** может стоять после любого количества ветвей **«иначе**-**если»**, включая ноль; в последнем случае ты получишь обычный блок **«если**-**иначе»**.

#### Изменение блока

В панели инструментов отображается только простой блок **«если»** и блок **«если**-**иначе»**:

[![image.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2024-11/scaled-1680-/B6Pimage.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2024-11/B6Pimage.png)

Чтобы добавить ветви **«иначе**-**если»** и **«иначе»**, щелкни по символу «+». Символ «-» удаляет ветви **«иначе**-**если»**:

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild6-ru.PNG)

Обрати внимание на то, что формы блоков допускают добавление любого количества подблоков **«иначе**-**если»**, однако только одного блока **«если»**.

### Булевская логика

Булевская логика — это простая математическая система, в которой существуют два значения:

- **истина**
- **ложь**

Как правило, логические блоки в программе ROBO Pro Coding предназначены для контроля условий и циклов.

Приведем пример:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild1-ru.PNG)

Если значение переменной x больше 100, условие является истиной и выдается текст «Was für eine große Zahl!». Если значение переменной x не больше 100, условие является ложью и выдается текст «Das ist nicht sehr groß.». Булевские значения могут наподобие числам, текстам и спискам сохраняться в переменных и передаваться в функции.

Если блок ожидает ввода булевского значения, отсутствие такого ввода интерпретируется как **ложь**. Небулевские значения нельзя напрямую вставить туда, где ожидаются булевские значения, но можно (хотя и не рекомендуется) сохранить небулевское значение в переменной и потом вставить ее в условие. Мы не советуем использовать этот способ, и в следующих версиях ROBO Pro Coding возможности его использования могут быть изменены.

#### Значения

Для вызова булевского значения можно использовать один-единственный блок с выпадающим списком, в котором (списке) указано **wahr (истина)** или **falsch (ложь)**.

#### Операторы сравнения

Существует шесть операторов сравнения Каждый из них сравнивает две введенные величины (как правило, два числа) и возвращает **wahr** или **falsch** в зависимости от того, как сравниваются эти величины.

[![image-1623518116706.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-9t97asqa.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116706.png)[![image-1623518117182.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-2qqlvlxe.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518117182.png)

[![image-1623518116894.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-aoochywb.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116894.png)[![image-1623518116802.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-vxxmcfod.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116802.png)

[![image-1623518116985.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-sz6vgygt.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116985.png)[![image-1623518166030.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-lafdcj9e.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518166030.png)

Шесть операторов сравнения — это равно, не равно, меньше, больше, меньше или равно, больше или равно.

#### Логические операторы

Блок **und (и)** возвращает **wahr (истина)** тогда и только тогда, когда оба его входных значения являются истиной.

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/nFQbild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/nFQbild8.PNG)

Блок **oder (или)** возвращает **wahr**, если как минимум одно из двух его входных значений является истиной.

[![Bild9.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/0bEbild9.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/0bEbild9.PNG)

#### не

Блок **nicht (не)** превращает введенное булевское значение в противоположное. Например, результатом

[![Bild10_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild10-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild10-ru.PNG)

будет **falsch (ложь)**.

Если не вводится никакое значение, программа исходит из значения **wahr**, поэтому следующий блок генерирует значение **falsch**:

[![Bild11_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild11-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild11-ru.PNG)

Не рекомендуем оставлять поле для ввода значения пустым.

#### Тернарный оператор

Тернарный оператор — это блок **«если-иначе»** в миниатюре. Тернарный оператор принимает три входных значения. Первое из них — проверяемое булевское условие, второе — значение, возвращаемое, если проверка даст результат **wahr (истина)**, третье — значение, возвращаемое, если проверка даст результат falsch (ложь). В следующем примере переменной **Farbe (цвет)** присваивается значение rot (красный), если переменная **x** меньше 10, иначе переменной **Farbe** присваивается значение grün (зеленый).

[![Bild12_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild12-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild12-ru.PNG)

Тернарный оператор всегда можно заменить блоком **«если-иначе»**. Следующие два примера абсолютно идентичны.[ ](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518306106.png)

[![Bild13_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild13-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild13-ru.PNG)

[![Bild14_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild14-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild14-ru.PNG)

# Циклы

Область «Steuerung» («Управление») содержит блоки, которые указывают, надо ли выполнять другие блоки, находящиеся внутри них. Есть два вида блоков управления: [**блоки «если-иначе»**](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/bedingungen "Условия") (описываются на отдельной странице) и блоки, управляющие частотой выполнения их содержимого. Второй вид блоков называют циклами, т. к. их содержимое, также именуемое телом цикла или просто телом, повторяется (может повторяться) многократно. Каждое выполнение цикла называется итерацией.

### Блоки для создания циклов

#### **dauerhaft wiederholen (повторять всегда)**

Блок **dauerhaft wiederholen** выполняет код, содержащийся в его теле, до завершения выполнения программы.

#### **wiederhole (повторить... раз)**

Блок **wiederhole** выполняет код, содержащийся в его теле, указанное количество раз. Например, следующий блок десять раз выдаст «Hallo!» («Привет!»):

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Wyrbild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Wyrbild1-ru.PNG)

#### **wiederhole-solange (повторять, пока …)**

Представь себе игру, в которой игрок бросает игральную кость и складывает все выпавшие очки, пока их сумма меньше 30. Следующие блоки описывают смысл этой игры:

1. Переменной с именем **insgesamt (итого)** присваивается начальное значение 0.
2. Цикл начинается с проверки того, меньше ли 30 значение переменной **insgesamt**. Если да, выполняются блоки в теле цикла.
3. Генерируется случайное число в диапазоне от 1 до 6 (имитация броска игральной кости) и сохраняется в переменной с именем **gewürfelt (выпало)**.
4. Выдается выпавшее число.
5. Значение переменной **insgesamt** увеличивается на значение переменной **gewürfelt**.
6. По достижении конца цикла выполняется возврат к шагу 2.

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild2-ru.PNG)

После завершения цикла выполняются все последующие блоки (не показаны). В примере выполнение цикла прекращается, после того как будет выдано определенное количество случайных чисел в диапазоне от 1 до 6 и значением переменной **insgesamt** станет сумма этих чисел, составляющая не менее 30.

#### **wiederhole-bis (повторять, пока не …)**

Циклы **wiederhole solange** повторяют свое тело, **пока** выполняется какое-либо условие. Циклы **wiederhole bis** похожи на них с тем отличием, что они выполняют свое тело, **пока не** будет выполнено определенное условие. Следующие блоки эквивалентны предыдущему примеру, потому что цикл выполняется, пока переменная **insgesamt** не примет значение, большее или равное 30.

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild3-ru.PNG)

#### **zählen-von-bis (считать от … до)**

Цикл **zählen-von-bis** увеличивает значение переменной, начиная с первого значения и заканчивая вторым значением, с шагом, равным третьему значению, причем тело цикла выполняется единожды для каждого значения переменной. Например, следующая программа выдает числа 1, 3 и 5.

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild4-ru.PNG)

Два следующих цикла, каждый из которых выводит числа 5, 3 и 1, демонстрируют, что первое значение может быть больше второго. Эти циклы работают одинаково вне зависимости от того, положителен или отрицателен инкремент (третье значение).

[![Bild5_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild5-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild5-ru.PNG)

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild6-ru.PNG)

#### **für jeden (для каждого)**

Блок **für jeden** похож на цикл **zählen-von-bis** с тем отличием, что вместо переменной цикла в числовой последовательности он последовательно использует значения из какого-либо списка. Следующая программа выдает каждый элемент из списка «alpha», «beta», «gamma»:

[![Bild7_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild7-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild7-ru.PNG)

### Блоки для выхода из цикла

Большинство циклов выполняется до тех пор, пока не будет выполнено условие выхода из цикла (у блоков **wiederhole (повторять)**) либо пока переменная цикла не примет все значения (у циклов **zählen mit (считать с)** и **für jeden (для каждого)**). Два следующих редко используемых, но в некоторых случаях очень полезных блока открывают дополнительные возможности управления выполнением циклов. В следующих примерах показано их использование для цикла **für jeden (для каждого)**, но эти блоки можно использовать для циклов всех видов.

#### **fahre-mit-nächster-Iteration-fort (переход на следующую итерацию)**

Блок **fahre-mit-nächster-Iteration-fort** позволяет пропустить остальные блоки в теле цикла и перейти к следующей итерации цикла.

Следующая программа при первой итерации выдает «alpha». При второй итерации выполняется блок **fahre mit nächster Integration fort (переход на следующую итерацию)**, т. е. вывод «beta» пропускается. При последней итерации программа печатает «gamma».

[![Bild8_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild8-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild8-ru.PNG)

#### Schleifenabbruch (выход из цикла)

Блок **schleifenabbruch** служит для досрочного завершения цикла. Следующая программа при первой итерации выдает «alpha», а при второй итерации выходит из цикла, если переменная цикла принимает значение «beta». Программа не доходит до третьего пункта списка.

[![Bild9_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild9-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild9-ru.PNG)

# Математика

Блоки категории Mathematik (Математика) используются для выполнения вычислений. Результаты вычислений можно использовать, например, в качестве значений переменных. В основе большинства «математических» блоков лежат обычные математические действия, поэтому эти блоки должны быть понятны без разъяснений.

### Блоки

#### Числа

Используй блок Zahl (число), чтобы добавить в свою программу любое число или присвоить какой-либо переменной значение в виде этого числа. Эта программа присваивает переменной **Alter (возраст)** число 12:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/6Bnbild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/6Bnbild1-ru.PNG)

#### Простые вычисления

Этот блок имеет структуру «Значение-оператор-значение» Доступные операторы: **+**, **-**, **÷**, **×** и **^**. Оператор выбирают в выпадающем меню. Операторы можно применять как непосредственно к числам, так и к значениям переменных. Пример:

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Ntibild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Ntibild2.PNG)

Этот блок выдает результат 144 (12^2).

#### Специальные вычисления

Этот блок применяет счетную операцию, выбранную в выпадающем меню, к следующему за этим меню числу или к значению следующей за этим меню переменной. Доступные счетные операции:

- корень квадратный;
- сумма;
- натуральный логарифм;
- десятичный логарифм;
- экспоненциальная функция с основанием e (e^1, e^2,...);
- экспоненциальная функция с основанием 10 (10^1, 10^2,...);
- инверсия знака (умножение на -1),

где e — эйлерово число. Этот блок извлекает корень квадратный из 16 и присваивает этот результат переменной **i**.

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/P8vbild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/P8vbild3-ru.PNG)

#### Тригонометрические функции

Этот блок работает аналогично описанному выше с тем отличием, что в качестве счетных операций используются тригонометрические функции: синус, косинус, тангенс и их подфункции. Указанное число или значение указанной переменной вставляется в функцию, выбранную в выпадающем меню. Полученный результат можно продолжать обрабатывать в программе. Еще есть блок **arctan2 of X: ... Y: ...**, который позволяет при помощи двух вещественных чисел (подставляемых вместо X и Y) получить значение функции arctan2 в области 360°.

#### Часто используемые константы

Этот блок работает аналогично блоку Zahl (число) с тем отличием, что здесь не надо самостоятельно указывать численное значение. Вместо него применяются уже сохраненные часто используемые константы (напр., π). Константу выбирают в выпадающем меню.

#### Rest einer Division (остаток от деления)

Блок **Rest von … (остаток от ...)** используется для вывода остатка от деления. Эта программа присваивает переменной **Rest (остаток)** остаток от деления 3:2, т. е. 1:

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/QwIbild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/QwIbild4-ru.PNG)

#### Runden (округление)

При помощи блока **runde … (округлить ...)** указанные десятичные числа или значение указанной переменной можно округлить до целого числа. В выпадающем меню предусмотрены три опции:

- «runde» («округлить») — коммерческое округление (напр., 4,5 округляется до 5)
- «runde auf» («округлить вверх») — округление в большую сторону (напр., 5,1 округляется до 6)
- «runde ab» («округлить вниз») — округление в меньшую сторону (напр., 5,9 округляется до 5).

#### Анализ списков

При помощи блока **... der Liste (... списка)** можно получить следующее:

- при вводе «Summe über die» — сумму всех значений списка;
- при вводе «Minimalwert der» — минимальное значение списка;
- при вводе «Maximalwert der» — максимальное значение списка;
- при вводе «Mittelwert der» — среднее арифметическое всех значений списка;
- при вводе «Median der» — медианное значение списка;
- при вводе «am häufigsten in der» — значение списка, которое встречается чаще всех остальных;
- при вводе «Standardabweichung der» — среднеквадратичное отклонение всех значений списка;
- при вводе «Zufallswert aus der» — случайное значение из списка.

Любую из этих опций можно выбрать в выпадающем меню блока:

[![Bild5_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/b4zbild5-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/b4zbild5-ru.PNG)

#### Ограничение входных величин

Блок **beschränke ... von ... bis … (ограничить ... от … до ...)** позволяет ограничить входные величины определенным интервалом. Перед дальнейшей обработкой входной величины программа проверяет, принадлежит ли она заданному интервалу. В зависимости от входной величины программа может поступать одним из трех способов:

- Величина принадлежит интервалу: дальше передается величина в неизменном виде.
- Величина меньше нижнего предела интервала: дальше передается этот нижний предел.
- Величина больше верхнего предела интервала: дальше передается этот верхний предел.

В следующем примере этот блок используется для ограничения значения переменной **Geschwindigkeit (скорость)** диапазоном частоты вращения, поддерживаемым двигателем:

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/TZkbild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/TZkbild6-ru.PNG)

#### Генерирование случайных значений

И блок **zufällige Zahl von ... bis... (случайное число от … до ...)**, и блок **zufälliger Bruch (случайная дробь)** выдают случайное значение. При этом блок **zufällige Zahl von ... bis...** выдает число из заданного интервала, а блок **zufälliger Bruch** — значение от 0,0 (включая) до 1,0 (исключая).

# Тексты

Примеры текстов:

«Вещь 1»  
«12 марта 2010 года»  
«» (пустой текст)  
Текст может содержать буквы (нижнего и верхнего регистров), числа, знаки препинания, другие символы и пробелы.

### Блоки

#### Создание текста

Следующий блок генерирует текст «Hallo» («Привет») и сохраняет его в переменной с именем **Gruß (приветствие):**

**[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/rXVbild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/rXVbild1-ru.PNG)**

Блок **erstelle Text aus (создать текст из)** создает из значения переменной **Gruß** и нового текста «Welt» («мир») текст «HalloWelt» («Приветмир»). Обрати внимание на то, что два исходных текста не разделены пробелом, т. к. его не было ни в одном из них.

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/wCHbild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/wCHbild2-ru.PNG)

Чтобы увеличить количество текстов, щелкни по символу «+». Чтобы удалить последний текст, щелкни по символу «-».

#### Изменение текста

Блок **an ... anhängen (к … добавить)** добавляет указанный текст к указанной переменной. В этом примере он изменяет текст переменной **Gruß** с «Hallo» на «Hallo, da!» («Эй, привет!»):

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/wy0bild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/wy0bild4-ru.PNG)

#### Длина текста

Блок **Länge von (длина)** считает количество символов (букв, чисел и т. д.), содержащихся в тексте. Длина выражения «Wir sind #1!» равна 12, длина пустого текста равна 0.

[![Bild5_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/ygKbild5-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/ygKbild5-ru.PNG)

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/ChHbild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/ChHbild6-ru.PNG)

#### Проверка на пустой текст

Блок **ist leer (пустой)** проверяет, пуст ли указанный текст (равна ли его длина 0). В первом примере результат проверки — **wahr (истина)**, во втором примере — **falsch (ложь)**.

[![Bild7_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/5OSbild7-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/5OSbild7-ru.PNG)

[![Bild8_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/M1ybild8-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/M1ybild8-ru.PNG)

#### Поиск текста

Эти блоки можно использовать, чтобы проверить, встречается ли текст в другом тексте, и если да, то где. Например, здесь программе задается вопрос о месте первой буквы «a» в слове «Hallo», результат — 2:

[![Bild9_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/100bild9-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/100bild9-ru.PNG)

Здесь задается вопрос о месте последней буквы «a» в слове «Hallo», результат — тоже 2:

[![Bild10_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/9tEbild10-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/9tEbild10-ru.PNG)

Вне зависимости от того, первое или последнее место выбрано, этот блок выдает результат 0, т. к. в слове «Hallo» нет буквы «z».

[![Bild11_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/BlUbild11-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/BlUbild11-ru.PNG)

#### Извлечение текста

##### Извлечение отдельного символа

Этот блок выдает «b» — вторую букву выражения «abcde»:

[![Bild12_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/3FSbild12-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/3FSbild12-ru.PNG)

Этот блок выдает «d» — предпоследнюю букву выражения «abcde»:

[![Bild13_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/zg2bild13-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/zg2bild13-ru.PNG)

Этот блок выдает «a» — первую букву выражения «abcde»:

[![Bild14_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/fFqbild14-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/fFqbild14-ru.PNG)

Этот блок выдаст «e» — последнюю букву выражения «abcde»:

[![Bild15_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild15-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild15-ru.PNG)

Этот блок с одинаковой вероятностью выдает любую из пяти букв выражения «abcde»:

[![Bild16_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild16-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild16-ru.PNG)

Ни один из этих блоков не изменяет текст, из которого извлекается символ.

#### Извлечение области текста

При помощи блока **im Text ... liefer Zeichenkette (из текста … выдай цепочку символов)** можно извлечь область текста, которая начинается на:

- букву №, либо
- букву № с конца, либо
- первую букву

и заканчивается на:

- букву №, либо
- букву № с конца, либо
- последнюю букву.

В следующем примере извлекается цепочка «abc»:

[![Bild17_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild17-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild17-ru.PNG)

#### Переключение между верхним и нижним регистрами

Этот блок генерирует версию введенного текста, которая написана

- ПРОПИСНЫМИ БУКВАМИ (все буквы верхнего регистра), либо
- строчными буквами (все буквы нижнего регистра), либо
- По Правилу «Слова Начинаются С Прописной Буквы» (первые буквы слов прописные, остальные строчные).

Результатом выполнения следующего блока будет «HALLO»:

[![Bild18_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild18-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild18-ru.PNG)

На небуквенные знаки это не распространяется. Обрати внимание на то, что этот блок не будет оказывать эффекта в языках без регистров, например в китайском.

#### Удаление пробелов

Следующий блок в зависимости от того, что выбрано в выпадающем меню (маленький треугольник), удаляет пробелы:

- в начале текста;
- в конце текста;
- с обеих сторон текста.

Результатом выполнения следующего блока будет «Hi du»:

[![Bild19_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild19-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild19-ru.PNG)

Пробелы внутри текста не удалились.

#### Вывести текст

Блок **gib aus (вывести)** выдает входную величину в окне консоли:

[![Bild20_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild20-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild20-ru.PNG)

При этом текст никогда не отправляется на принтер, как можно было бы подумать, исходя из названия.

#### Вывести текст с форматированием

Блок **formatiere text (форматировать текст)** форматирует выводимый текст, содержащий переменные. При этом все подстановочные знаки **{}** в тексте заменяются на содержимое переменной, приведенной после текста. В фигурных скобках можно указать форматирование. Например, форматирование **{:.1f}** выводит только первый знак после запятой в переменной **t**.

[![image-1638882988865.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/image-1638882988865.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638882988865.png)

# Списки

Как и в повседневной жизни, в ROBO Pro Coding под списком тоже понимается упорядоченный набор элементов, например список дел или список покупок. Элементы списка могут принадлежать любому типу. Одно и тоже значение может встречаться в списке более одного раза.

### Создание списка

#### **Создать список из**

При помощи блока **erstelle Liste mit (создать список из)** можно указать начальные значения нового списка. В этом примере создается список слов и сохраняется в переменной с именем **Buchstaben (буквы)**:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/0tIbild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/0tIbild1-ru.PNG)

Мы назовем этот список \[«alpha», «beta», «gamma»\].

Ниже показано создание списка **чисел**:

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/8v3bild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/8v3bild2-ru.PNG)

Так создается список **цветов**:

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/uC2bild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/uC2bild3-ru.PNG)

Хотя этот вариант и встречается не так часто, можно создать список значений разных типов:

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/FGsbild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/FGsbild4-ru.PNG)

#### Изменение количества входов

Чтобы изменить количество входов, щелкни по значку шестеренки или коснись его. Открывается новое окно. Чтобы добавить новый вход, перетащи подблоки элементов из левой стороны окна в блок списка на правой стороне:

В этом примере новый элемент добавлен внизу, но его можно добавить в любом месте. Ненужные подблоки элементов можно перетащить из блока списка влево.

#### Создание списка с определенным количеством экземпляров элемента

При помощи блока **erstelle Liste mit Element (создать список с … элементами(-ом))** ты можешь создать список, содержащий указанное количество экземпляров элемента. Например, следующие блоки присваивают переменной **Wörter (слова)** значение в виде списка \[«sehr», «sehr», «sehr»\] (\[«очень», «очень», «очень»\]).

[![Bild5_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/SFzbild5-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/SFzbild5-ru.PNG)

### Проверка длины списка

#### **ist leer (пустой)**

Значение блока **ist leer (пустой)** является **истиной**, если он содержит пустой список, и **ложью**, если он содержит что-либо другое. Будет ли следующее выражение **истиной**? Следующий блок будет иметь значение **ложь**, т. к. переменная «Цвета» не пустая: она содержит три элемента.

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/dLRbild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/dLRbild6-ru.PNG)

Обрати внимание на схожесть этого блока с блоком **ist leer (пустой)** для текста.

#### **Длина**

Значением блока **Länge von (длина)** является количество элементов списка, подставленного в блок. Например, значением следующего блока было бы 3, т. к. список **Farbe** содержит три элемента:

[![Bild7_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Jv7bild7-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Jv7bild7-ru.PNG)

Обрати внимание на то, что блок **Länge von (длина)** считает общее количество элементов в списке, а не количество разных элементов в списке. Например, следующий блок имеет значение 3, хотя список **Wörter** состоит из трех одинаковых слов:

[![Bild8_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/1Fcbild8-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/1Fcbild8-ru.PNG)

Обрати внимание на схожесть этого блока с блоком **Länge von (длина)** для текста.

### Поиск элементов в списке

Эти блоки находят положение элемента в списке. В следующем примере блок, находящий положение первого экземпляра элемента, имеет значение 1, т. к. первое слово «sehr» стоит в начале списка слов (\[«sehr», «sehr», «sehr»\]).

[![Bild9_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/i89bild9-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/i89bild9-ru.PNG)

Результатом выполнения следующего блока, находящего положение последнего экземпляра элемента, будет 3, т. к. последнее слово «sehr» в списке **Wörter** стоит на 3 месте.

[![Bild10_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/xdibild10-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/xdibild10-ru.PNG)

Если элемент не встречается в списке, результатом выполнения блока будет 0, как в следующем примере:

[![Bild11_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/gPnbild11-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/gPnbild11-ru.PNG)

Эти блоки работают аналогично блокам для поиска букв в тексте.

### Вызов элементов из списка

#### Вызов одного элемента

Вспомни определение списка **Farben (цвета)**:

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/uC2bild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/uC2bild3-ru.PNG)

Следующий блок содержит синий цвет, т. к. он является вторым элементом в списке (если считать слева):

[![Bild13_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/57Wbild13-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/57Wbild13-ru.PNG)

Этот блок содержит зеленый цвет, т. к. он является вторым элементом (если считать справа):

[![Bild14_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/7FNbild14-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/7FNbild14-ru.PNG)

Этот блок содержит первый элемент — красный цвет:

[![Bild15_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/BQTbild15-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/BQTbild15-ru.PNG)

Этот блок содержит последний элемент — желтый цвет:

[![Bild16_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/q8nbild16-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/q8nbild16-ru.PNG)

Этот блок с одинаковой вероятностью выбирает случайный элемент из списка: красный, синий, зеленый или желтый цвет.

[![Bild17_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/4iQbild17-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/4iQbild17-ru.PNG)

#### Вызов и удаление элемента

При помощи выпадающего меню блок **aus Liste ... abrufen (вызвать … из списка)** превращается в блок **aus Liste ... abrufen** **und entfernen** (**вызвать … из списка** **и удалить**), который выдает такое же значение, но изменяет список:

[![Bild18_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/cTrbild18-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/cTrbild18-ru.PNG)

В этом примере переменной **erster Buchstabe (первая буква)** присваивается значение «alpha», остальные буквы (\[«beta», «gamma»\]) остаются в списке.

[![Bild19_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/VrObild19-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/VrObild19-ru.PNG)

#### Удаление элемента списка

Если в выпадающем меню выбрать **entfernen (удалить)**, выступ на блоке слева исчезает:

[![Bild20_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/zCBbild20-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/zCBbild20-ru.PNG)

Первый элемент из списка **Buchstaben** удаляется.

#### Вызвать подсписок

Блок **aus Liste … Subliste abrufen (вызвать из списка... подсписок**) похож на блок **aus Liste ... abrufen (вызвать … из списка)** с тем отличием, что он извлекает подсписок, а не один элемент. Существует несколько возможностей указать начало и конец подсписка:

[![Bild21_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild21-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild21-ru.PNG)

[![Bild22_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/EAvbild22-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/EAvbild22-ru.PNG)

В этом примере создается новый список **erster Buchstabe (первая буква)**. Этот новый список содержит два элемента: \[«alpha», «beta»\].

[![Bild23_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild23-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild23-ru.PNG)

Обрати внимание на то, что этот список не изменяет исходный список.

### Добавление элементов в список

#### Замена элементов списка

Блок **in Liste ... ersetze (заменить … в списке)** заменяет элемент в определенном месте списка на другой элемент.

[![Bild24_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild24-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild24-ru.PNG)

Значение пунктов выпадающего меню см. в предыдущем разделе.

В следующем примере выполняются два действия:

1. Создается список **Wörter (слова)** с 3 элементами: \[«sehr», «sehr», «sehr»\] (\[«очень», «очень», «очень»\]).
2. Третий элемент списка заменяется на «gut» («хорошо»). Новым значением переменной **Wörter** является \[«sehr», «sehr», «gut»\] (\[«очень», «очень», «хорошо»\]).

[![Bild25_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild25-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild25-ru.PNG)

#### Вставка элементов в определенное место списка

Блок **in Liste ... einfügen bei (вставить в список … на место)** вызывается через выпадающее меню блока **заменить ... в списке**:

[![Bild26_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild26-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild26-ru.PNG)

Этот блок вставляет новый элемент в указанное место списка, а именно перед элементом, ранее находившимся на этом месте. В следующем примере (основанном на предыдущем примере) выполняются три действия:

1. Создается список **Wörter (слова)** с 3 элементами: \[«sehr», «sehr», «sehr»\] (\[«очень», «очень», «очень»\]).
2. Третий элемент списка заменяется на «gut» («хорошо»). Таким образом, новым значением переменной **Wörter** является \[«sehr», «sehr», «gut»\] (\[«очень», «очень», «хорошо»\]).
3. В начало списка вставляется слово «Sei» («будь»). Таким образом, окончательным значением переменной **Wörter** будет \[«Sei», «sehr», «sehr», «gut»\] (\[«Будь», «очень», «очень», «хорошим»\]).

[![Bild27_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild27-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild27-ru.PNG)

### Разделение цепочек символов и объединение в списки

#### Создание списка из текста

Блок **erstelle Liste aus Text (создать список из текста)** разбивает на части указанный текст при помощи ограничителя:

[![Bild28_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild28-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild28-ru.PNG)

В вышеприведенном примере возвращается новый список, содержащий три фрагмента текста: «311», «555» и «2368».

#### Создание текста из списка

Блок **erstelle Text aus Liste (создать текст из списка)** создает из списка единый текст при помощи разделителя:

[![Bild29_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild29-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild29-ru.PNG)

В вышеприведенном примере возвращается новый текст со значением «311-555-2368».

### Родственные блоки

#### Печать списка

Блок **drucken (напечатать)** в категории Text (Текст) может выдавать списки. В результате выполнения следующей программы на консоль выводятся показанные данные:

[![Bild30_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild30-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild30-ru.PNG)

[![Konsole_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/konsole-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/konsole-ru.PNG)

#### Выполнение какого-либо действия для каждого элемента списка

Блок **für-jeden (для каждого)** в категории «Управление» выполняет ту или иную операцию для каждого элемента списка. Например, этот блок отдельно выводит каждый элемент списка:

[![Bild31_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild31-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild31-ru.PNG)

При этом из исходного списка элементы не удаляются.

См. также примеры [блоков для выхода из цикла](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/schleifen "Циклы").

# Пользование

Категория «Benutzung» («Пользование») программы ROBO Pro Coding содержит следующие блоки:

- Выбор цвета
- Ожидание
- Код на Python
- Запустить
- Выполнение функции

#### Выбор цвета

Этот блок служит входной величиной, если задается вопрос о цвете (напр., при регулировке цветового баланса камерой). При щелчке по цвету или касании цвета можно выбрать один из 70 цветов палитры.

#### Ожидание

##### Ожидание до истечения времени

Блок **warte \[\] … (ждать \[\] ...)** приостанавливает выполнение программы на указанное время ожидания. При этом в выпадающем меню (маленький треугольник) можно выбрать единицу измерения времени, а в поле ввода за ним — нужную длину перерыва.

##### Ожидание с условием

Блок **warte bis (ждать, пока не)** привязывает перерыв не ко времени, а к выполнению какого-либо условия (напр., нажатию какой-либо клавиши). Условие вставляется после блока **warte** **bis**.

#### Код на Python

Если ты хочешь интегрировать в ROBO Pro Coding имеющийся код на языке Python, его можно вставить в блок **Python Code (код на Python)**. Тогда программа выполнит все, что указано в блоке на языке Python.

#### Запустить

Блок **starte wenn** (**запустить, если**) тоже привязан к выполнению условия. Программа, указанная в теле блока, запускается только при выполнении этого условия.

#### Выполнение функции

При помощи блока **führe Funktion ... in einem Thread aus** (**выполнить функцию ... в отдельном потоке**) выбранная функция выполняется в отдельном потоке. В некоторых случаях благодаря этому программа может продолжать реагировать на ввод данных и выполняться быстрее.

<div id="bkmrk-"></div><div id="bkmrk-%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0">Обработка</div>

# Переменные

Мы используем понятие переменной так же, как оно используется в математике и других языках программирования, то есть понимаем под переменной именованное значение, которое может изменяться. Существуют разные способы создания переменных.

- Некоторые блоки, например **считать с** и **для каждого**, используют переменную и определяют ее значения. Традиционно в информатике для обозначения таких переменных используется понятие «переменная цикла».
- Пользовательские функции (также именуемые «процедурами») могут задавать вводимые данные, вследствие чего генерируются переменные, которые можно использовать только в данной функции. Такие переменные традиционно называют «параметрами» или «аргументами».
- Пользователи могут в любой момент изменять переменные при помощи блока **setze (присвоить)**. Их традиционно называют «глобальными переменными». Они используются во всем коде ROBO Pro Coding.

#### Выпадающее меню

При щелчке по символу выпадающего меню (маленький треугольник) переменной появляется следующее меню:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/gD2bild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/gD2bild1-ru.PNG)

Это меню содержит следующие опции:

- отображение имен всех существующих переменных, заданных в этой программе.
- «Variable umbenennen...» («Переименовать переменную...»), т. е. изменение имени этой переменной во всей программе (при выборе этой опции программа спросит тебя о новом имени)
- «Variable löschen...» («Удалить переменную ...»), т. е. удаление всех блоков, ссылающихся на эту переменную, во всей программе.

### Блоки

#### Задать

Блок **присвоить** присваивает переменной какое-либо значение и создает эту переменную, если она еще не существует. Например, здесь переменной **Alter (возраст)** присваивается значение 12:

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/m8zbild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/m8zbild2-ru.PNG)

#### Вызвать

Блок **rufe ab (вызвать)** выдает значение, сохраненное в переменной, не изменяя его:

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/oLvbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/oLvbild3.PNG)

Можно (хотя это и плохая идея) написать программу, в которой перед блоком **вызвать** не будет соответствующего блока **установить**.

#### Изменить

Блок **ändere (изменить)** прибавляет к переменной число.

[![Bild4_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Ut0bild4-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Ut0bild4-ru.PNG)

Блок **изменить** является сокращением следующей конструкции:

[![Bild5_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/vUZbild5-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/vUZbild5-ru.PNG)

#### Пример

Посмотри на следующий пример кода:

[![Bild6_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/dszbild6-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/dszbild6-ru.PNG)

Первый ряд блоков создает переменную под названием **Alter (возраст)** и **присваивает** ей начальное значение 12. Второй ряд блоков **вызывает** значение 12, прибавляет к нему 1 и сохраняет полученную сумму (13) в переменной. В последней строке выдается сообщение: «Herzlichen Glückwunsch! Du bist jetzt 13» (Поздравляю! Тебе исполнилось 13 лет»).

# Функции

Функции делают возможным повторное использование частей кода, структурируя тем самым код в целом. При заполнении блока функции в меню функций появляется новый блок с таким же именем, что и заполняемый блок функции. Сейчас в основную программу можно просто вставить блок с именем функции. При прогоне программы этот блок перенаправляет к коду в одноименной функции и выполняет его.

#### Простая функция

Блок простой функции позволяет создать функцию с именем, введенным в текстовое поле. Функция может содержать любое количество переменных, добавляемых щелчком по значку шестеренки. Эта функция **Altern (старение)** прибавляет 1 к переменной **Alter (возраст)**:

[![Bild1_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Eu4bild1-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Eu4bild1-ru.PNG)

Функцию можно использовать в основной программе:

[![Bild2_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/tZnbild2-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/tZnbild2-ru.PNG)

#### Функция с возвращаемым значением

Этот блок позволяет создать функцию с возвращаемым значением. Это возвращаемое значение можно использовать в основной программе. Приведем пример:

[![Bild3_ru.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/FZWbild3-ru.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/FZWbild3-ru.PNG)