Занятие №35 "Команды управления списками"
На этом занятии мы подробнее рассмотрим эти блоки, чтобы четко понять, как они работают
Добавить и удалить

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

Сначала скрипт выполняет команду удалить — и убирает второй элемент из списка, «Апельсин». Затем он вводит в конец списка «Лимон» с помощью команды добавить
Команда добавить — простая, а команду удалить рассмотрим внимательнее. Можно ввести показатель элемента, который вы хотите уда- лить, прямо в окошко параметра, или щелкнуть по направленному вниз треугольнику. Выпадающее меню предлагает три варианта: 1, последний и все. Можно выбрать удаление из списка первого элемента («Яблоко»), последнего («Манго») или всех сразу.
Вставить и заменить

Предположим, вы захотели сохранить имена и номера телефонов своих друзей в виде алфавитного списка — как в телефонной книге мобильника. При составлении такого списка нужно вставлять контакты каждого друга в определенное место. Но потом вдруг один из ваших друзей меняет номер, и вам нужно отредактировать список. На помощь придут команды вставить и заменить. На рисунке показано использование этих команд на примере списка телефонов.
Команда заменить переписывает текущую строку на позиции 3 — теперь у Кима новый номер. Команда вставить перемещает номер нового друга, Марка, на позицию 4. Следующие элементы сдвинулись вниз на одну позицию.

Если щелкнуть по номеру элемента, а точнее по направленной вниз стрелочке в обеих командах, заменить и вставить, появится выпадающее меню с тремя вариантами: 1, последний и случайное. Если вы выберете вариант случайное, команда возьмет случайный элемент из списка. Дальше мы увидим, как можно с пользой применить эту функцию.
Доступ к элементам списка

Как было сказано выше, доступ к любому элементу в списке обеспечивается показателем данного элемента. Например, скрипт на рисунке ниже показывает использование блока элемент из для доступа к элементам нашего списка днейСписок. Этот скрипт использует переменную поз, чтобы выполнить итерацию каждого элемента списка, показывая содержимое элемента с помощью команды говорить.
УПРАЖНЕНИЕ 35.1

Замените цифру 7 в блоке повторить на блок длина списка днейСпи-сок. Именно так вы бы поступили, если бы не знали, сколько элементов в списке. Также в блоке элемент выберите вариант случайное в первом выпадающем меню. Скрипт будет отображать элементы списка в случай- ном порядке.
Скрипт присваивает переменной поз значение 1, чтобы можно было обратиться к первому элементу списка днейСписок, после чего входит в цикл. Количество повторений равно семи, что соответствует количеству элементов списка. При каждом повторе цикла будет называться элемент списка с показателем, равным величине поз, а затем поз будет увеличиваться на 1, чтобы перейти к следующему элементу. Иными сло- вами, мы используем поз в качестве указателя на элемент в списке.
Блок содержит не принимает во внимание регистр букв. Блок днейСписок содержит пятНИЦА, например, будет опознан как верны
Блок содержит

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

Четыре блока для управления списками (удалить, вставить, заменить и элемент) требуют ввода параметра — показателя элемента, к которому вы хотите обратиться. Например, для удаления седьмого элемента списка днейСписок мы будем использовать команду удалить 7 из днейСписок. Но что, по-вашему, произойдет, если вы используете неверный показа- тель в одном из этих блоков? Например, как Scratch отреагирует, если вы попросите его удалить восьмой элемент из днейСписок, а в нем всего семь элементов?

Попытка обращения к элементу за пределами списка теоретически является ошибкой. Но, вместо того чтобы вывести сообщение об ошибке или грубо прервать программу, Scratch пытается что-то сделать с неверным блоком. Поэтому отсутствие сообщений об ошибках еще не говорит о том, что все правильно: в вашем коде вполне могут быть ошибки, и, если так, вам нужно их исправить. Scratch не будет жаловаться на неверные показатели в блоках, просто результат, скорее всего, получится не тот, на который вы рассчитывали. На картинке ниже показано, что произойдет, если вы попытаетесь обратиться к днейСписок с неверным показателем.

Примеры показывают, что, хотя блоки Scratch пытаются извлечь какой-то смысл из неверно введенных команд, они не обязательно сделают то, что требуется. Если вы хотите, чтобы программа работала так, как вам нужно, надо обеспечить корректный ввод.
Неожиданные результаты обращения к неверным показателям списка
До этого момента в качестве примеров использовались простые списки, которые мы создавали вручную с помощью мониторов. Теперь вопрос: а что если нам неизвестно содержимое списка, когда мы создаем программу? Например, вам может понадобиться сделать список введенных пользователем чисел или заполнить список случайными величинами при каждом запуске программы.

Scratch - Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website