Skip to main content

Списки

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

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

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

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

Bild1_ru.PNG

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

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

Bild2_ru.PNG

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

Bild3_ru.PNG

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

Bild4_ru.PNG

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

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

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

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

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

Bild5_ru.PNG

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

ist leer (пустой)

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

Bild6_ru.PNG

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

Длина

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

Bild7_ru.PNG

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

Bild8_ru.PNG

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

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

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

Bild9_ru.PNG

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

Bild10_ru.PNG

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

Bild11_ru.PNG

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

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

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

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

Bild3_ru.PNG

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

Bild13_ru.PNG

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

Bild14_ru.PNG

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

Bild15_ru.PNG

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

Bild16_ru.PNG

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

Bild17_ru.PNG

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

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

Bild18_ru.PNG

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

Bild19_ru.PNG

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

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

Bild20_ru.PNG

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

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

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

Bild21_ru.PNG

Bild22_ru.PNG

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

Bild23_ru.PNG

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

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

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

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

Bild24_ru.PNG

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

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

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

Bild25_ru.PNG

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

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

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

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

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

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

Bild28_ru.PNG

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

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

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

Bild29_ru.PNG

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

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

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

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

Bild30_ru.PNG

Konsole_ru.PNG

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

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

Bild31_ru.PNG

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

См. также примеры блоков для выхода из цикла.