Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Типы алгоритмов ScratchDuino2



 

По структуре выполнения алгоритмы делятся на три вида: линейные, вет­вящиеся и циклические.

Линейные алгоритмы

Линейный алгоритм — это алгоритм, в котором все действия выпол-няются последовательно друг за другом и только один раз. Схема представляет собой последовательность блоков, которые располагаются сверху вниз в порядке их выполнения.

Тема проекта: «Краб рисует лесенку».

Условия выполнения проекта:

— исполнитель — Краб;

— процесс рисования лесенки выполняется как в мультфильме;

— реализуется простая возможность менять число ступенек и их размер;

— выполнение скрипта должно проходить, если значение резистора (переменная Рычажок) больше 50.

Выполнение проекта «Краб рисует лесенку» с использованием линейного алгоритма

Выберем в качестве исполнителя алгоритма (спрайта) Краба и научим его рисовать лесенку. Краб живет на прямоугольном поле размером 480× 360 пикселей. Он умеет находить место на поле по его координатам [1]. Краб умеет: перемещаться на указанное количество шагов; ждать; повора­чиваться влево и вправо на 0, 90 и 180 градусов. У Краба есть перо, ко­торое оставляет след. Пример скрипта для Краба приведен на рис. 5.5.
Согласно этому скрипту, Краб рисует 3 ступеньки (рис. 5.6). Начинается исполнение скрипта при нажатой на клавиатуре клавише «Стрелка вверх».

При использовании только линейного алгоритма:

— процесс построения лесенки не виден, но рисунок появляется мгно­венно;

— изменение количества ступенек требует увеличения объёма скрипта и редактирования числовых значений в каждом блоке, поэтому данный способ нельзя назвать простым;

— требования по использованию условия с Рычажком реализовать
невозможно.

Рис. 5.5. Линейный алгоритм рисования лестницы.

Рис. 5.6. Результат выполнения линейного скрипта для Спрайта 1
в костюме Краба на сцене с белым фоном (рисунок из коллекции crab1-a).

 

Вывод 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
в костюме Краба на сцене с белым фоном (из коллекции crab1-a).

 

Вывод 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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь