Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Типы алгоритмов ScratchDuino2
По структуре выполнения алгоритмы делятся на три вида: линейные, ветвящиеся и циклические. Линейные алгоритмы Линейный алгоритм — это алгоритм, в котором все действия выпол-няются последовательно друг за другом и только один раз. Схема представляет собой последовательность блоков, которые располагаются сверху вниз в порядке их выполнения. Тема проекта: «Краб рисует лесенку». Условия выполнения проекта: — исполнитель — Краб; — процесс рисования лесенки выполняется как в мультфильме; — реализуется простая возможность менять число ступенек и их размер; — выполнение скрипта должно проходить, если значение резистора (переменная Рычажок) больше 50. Выполнение проекта «Краб рисует лесенку» с использованием линейного алгоритма Выберем в качестве исполнителя алгоритма (спрайта) Краба и научим его рисовать лесенку. Краб живет на прямоугольном поле размером 480× 360 пикселей. Он умеет находить место на поле по его координатам [1]. Краб умеет: перемещаться на указанное количество шагов; ждать; поворачиваться влево и вправо на 0, 90 и 180 градусов. У Краба есть перо, которое оставляет след. Пример скрипта для Краба приведен на рис. 5.5. При использовании только линейного алгоритма: — процесс построения лесенки не виден, но рисунок появляется мгновенно; — изменение количества ступенек требует увеличения объёма скрипта и редактирования числовых значений в каждом блоке, поэтому данный способ нельзя назвать простым; — требования по использованию условия с Рычажком реализовать
Рис. 5.5. Линейный алгоритм рисования лестницы.
Рис. 5.6. Результат выполнения линейного скрипта для Спрайта 1
Вывод 1. При использовании линейного алгоритма невозможно выполнить все требования проекта. Алгоритмы циклической структуры Цикл — последовательность команд, повторяемая до тех пор, пока не будет выполнено заданное условие. Циклическое описание много-кратно повторяемых процессов значительно снижает трудоемкость напи-сания программ. В Scratch есть блоки для 4-х видов циклов: безусловный (бесконечный), со счётчиком и с некоторым условием (рис. 5.7).
Рис. 5.7. Операторы цикла в ScratchDuino2.
Выполнение проекта «Краб рисует лесенку» с использованием линейного и циклического алгоритмов Легко заметить, что на рис. 5.5 несколько раз повторяется один набор команд: идти 60 шагов, повернуть вверх (0 градусов), ), идти 40 шагов, по-вернуть направо (90°). Применим цикл со счётчиком.
Рис. 5.8. Циклический алгоритм. Обратите внимание: на рис. 5.8 текст скрипта стал короче, чем на рис. 5.5, а Краб нарисовал 5 ступенек лесенки (см. рис. 5.9). Теперь достаточно изменить значение в поле Повторить, и ступенек будет сколь угодно много. Изменим количество шагов (высоту ступеньки) только в одном блоке со значения 40 на 20. Изменится длина всех ступенек. При использовании циклического алгоритма: — процесс построения лесенки по-прежнему не виден; — удалось реализовать требование о простом изменении количества и размера ступеней; — требования по использованию условия с Рычажком реализовать по-прежнему невозможно.
Рис. 5.9. Результат выполнения циклического скрипта для Спрайта 1
Вывод 2. При использовании только линейного и циклического алгоритмов нельзя выполнить все требования проекта «Краб рисует лесенку». Алгоритмы ветвления Ветвящийся или разветвляющийся алгоритм — это алгоритм, в котором имеется несколько альтернативных ветвей действий. Выбор называют простым, когда есть только два варианта, и сложным, когда вариантов больше двух (рис. 5.10).
Рис. 5.10. Сложный выбор. Момент выбора называется точкой ветвления. Ветвление — одна из трех (наряду с линейным выполнением команд и циклом) базовых конструкций алгоритмов. Все языки программирования имеют специальные операторы (команды) ветвления (условные операторы) прогpaммы в зависимости от тoгo, выполнено указанное условие или нет. В ScratchDuino2 вгруппе Контроль имеются 3 условных оператора: полное и неполное ветвление и пауза (см. рис. 5.11).
Рис. 5.11. Условные операторы в ScratchDuino2. Выполнение проекта «Краб рисует лесенку» с использованием линейного, циклического и разветвляющегося алгоритмов Как видно на рис. 5.12, в готовый скрипт (рис. 5.8) были добавлены: 1) два блока ожидания , чтобы можно было видеть (как в мультфильме [2] ) процесс рисования лесенки; 2) неполное ветвление , в условие проверки которого было введено значение Рычажка из подключенной ScratchDuino.Лаборатории. Согласно указанному условию, скрипт будет выполняться, если Рычажок стоит на правой половине своей «дорожки», т.е. значение переменной Рычажок больше 50.
Рис. 5.12. Алгоритм с использованием ветвления. Вывод: Проект может быть выполнен в полном объёме только при использовании всех трёх видов алгоритмов (линейного, циклического и разветвляющегося). |
Последнее изменение этой страницы: 2017-05-05; Просмотров: 449; Нарушение авторского права страницы