Списки Как и в повседневной жизни, в ROBO Pro Coding под списком тоже понимается упорядоченный набор элементов, например список дел или список покупок. Элементы списка могут принадлежать любому типу. Одно и тоже значение может встречаться в списке более одного раза. Создание списка Создать список из При помощи блока erstelle Liste mit (создать список из) можно указать начальные значения нового списка. В этом примере создается список слов и сохраняется в переменной с именем Buchstaben (буквы): Мы назовем этот список [«alpha», «beta», «gamma»]. Ниже показано создание списка чисел: Так создается список цветов: Хотя этот вариант и встречается не так часто, можно создать список значений разных типов: Изменение количества входов Чтобы изменить количество входов, щелкни по значку шестеренки или коснись его. Открывается новое окно. Чтобы добавить новый вход, перетащи подблоки элементов из левой стороны окна в блок списка на правой стороне: В этом примере новый элемент добавлен внизу, но его можно добавить в любом месте. Ненужные подблоки элементов можно перетащить из блока списка влево. Создание списка с определенным количеством экземпляров элемента При помощи блока erstelle Liste mit Element (создать список с … элементами(-ом)) ты можешь создать список, содержащий указанное количество экземпляров элемента. Например, следующие блоки присваивают переменной Wörter (слова) значение в виде списка [«sehr», «sehr», «sehr»] ([«очень», «очень», «очень»]). Проверка длины списка ist leer (пустой) Значение блока ist leer (пустой) является истиной, если он содержит пустой список, и ложью, если он содержит что-либо другое. Будет ли следующее выражение истиной? Следующий блок будет иметь значение ложь, т. к. переменная «Цвета» не пустая: она содержит три элемента. Обрати внимание на схожесть этого блока с блоком ist leer (пустой) для текста. Длина Значением блока Länge von (длина) является количество элементов списка, подставленного в блок. Например, значением следующего блока было бы 3, т. к. список Farbe содержит три элемента: Обрати внимание на то, что блок Länge von (длина) считает общее количество элементов в списке, а не количество разных элементов в списке. Например, следующий блок имеет значение 3, хотя список Wörter состоит из трех одинаковых слов: Обрати внимание на схожесть этого блока с блоком Länge von (длина) для текста. Поиск элементов в списке Эти блоки находят положение элемента в списке. В следующем примере блок, находящий положение первого экземпляра элемента, имеет значение 1, т. к. первое слово «sehr» стоит в начале списка слов ([«sehr», «sehr», «sehr»]). Результатом выполнения следующего блока, находящего положение последнего экземпляра элемента, будет 3, т. к. последнее слово «sehr» в списке Wörter стоит на 3 месте. Если элемент не встречается в списке, результатом выполнения блока будет 0, как в следующем примере: Эти блоки работают аналогично блокам для поиска букв в тексте. Вызов элементов из списка Вызов одного элемента Вспомни определение списка Farben (цвета): Следующий блок содержит синий цвет, т. к. он является вторым элементом в списке (если считать слева): Этот блок содержит зеленый цвет, т. к. он является вторым элементом (если считать справа): Этот блок содержит первый элемент — красный цвет: Этот блок содержит последний элемент — желтый цвет: Этот блок с одинаковой вероятностью выбирает случайный элемент из списка: красный, синий, зеленый или желтый цвет. Вызов и удаление элемента При помощи выпадающего меню блок aus Liste ... abrufen (вызвать … из списка) превращается в блок aus Liste ... abrufen und entfernen (вызвать … из списка и удалить), который выдает такое же значение, но изменяет список: В этом примере переменной erster Buchstabe (первая буква) присваивается значение «alpha», остальные буквы ([«beta», «gamma»]) остаются в списке. Удаление элемента списка Если в выпадающем меню выбрать entfernen (удалить), выступ на блоке слева исчезает: Первый элемент из списка Buchstaben удаляется. Вызвать подсписок Блок aus Liste … Subliste abrufen (вызвать из списка... подсписок) похож на блок aus Liste ... abrufen (вызвать … из списка) с тем отличием, что он извлекает подсписок, а не один элемент. Существует несколько возможностей указать начало и конец подсписка: В этом примере создается новый список erster Buchstabe (первая буква). Этот новый список содержит два элемента: [«alpha», «beta»]. Обрати внимание на то, что этот список не изменяет исходный список. Добавление элементов в список Замена элементов списка Блок in Liste ... ersetze (заменить … в списке) заменяет элемент в определенном месте списка на другой элемент. Значение пунктов выпадающего меню см. в предыдущем разделе. В следующем примере выполняются два действия: Создается список Wörter (слова) с 3 элементами: [«sehr», «sehr», «sehr»] ([«очень», «очень», «очень»]). Третий элемент списка заменяется на «gut» («хорошо»). Новым значением переменной Wörter является [«sehr», «sehr», «gut»] ([«очень», «очень», «хорошо»]). Вставка элементов в определенное место списка Блок in Liste ... einfügen bei (вставить в список … на место) вызывается через выпадающее меню блока заменить ... в списке: Этот блок вставляет новый элемент в указанное место списка, а именно перед элементом, ранее находившимся на этом месте. В следующем примере (основанном на предыдущем примере) выполняются три действия: Создается список Wörter (слова) с 3 элементами: [«sehr», «sehr», «sehr»] ([«очень», «очень», «очень»]). Третий элемент списка заменяется на «gut» («хорошо»). Таким образом, новым значением переменной Wörter является [«sehr», «sehr», «gut»] ([«очень», «очень», «хорошо»]). В начало списка вставляется слово «Sei» («будь»). Таким образом, окончательным значением переменной Wörter будет [«Sei», «sehr», «sehr», «gut»] ([«Будь», «очень», «очень», «хорошим»]). Разделение цепочек символов и объединение в списки Создание списка из текста Блок erstelle Liste aus Text (создать список из текста) разбивает на части указанный текст при помощи ограничителя: В вышеприведенном примере возвращается новый список, содержащий три фрагмента текста: «311», «555» и «2368». Создание текста из списка Блок erstelle Text aus Liste (создать текст из списка) создает из списка единый текст при помощи разделителя: В вышеприведенном примере возвращается новый текст со значением «311-555-2368». Родственные блоки Печать списка Блок drucken (напечатать) в категории Text (Текст) может выдавать списки. В результате выполнения следующей программы на консоль выводятся показанные данные: Выполнение какого-либо действия для каждого элемента списка Блок für-jeden (для каждого) в категории «Управление» выполняет ту или иную операцию для каждого элемента списка. Например, этот блок отдельно выводит каждый элемент списка: При этом из исходного списка элементы не удаляются. См. также примеры блоков для выхода из цикла.