# Списки

Как и в повседневной жизни, в 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 "Циклы").