Читайте также:
|
|
Пусть требуется написать алгоритм, который проводит Робота из клетки А в клетку Б и закрашивает клетки, отмеченные точками (рис 50)
(рис 50)
На рисунке показан один из возможных путей Робота при решении этой задачи. Видно, что Робот должен закрасить три прямоугольных "блока" размером 3x5 клеток, а между закрашиваниями блоков два раза обойти стену. Запишем эту мысль в виде основного алгоритма:
Алг из А в Б с закрашиванием
● дано | Робот в точке А
● надо | Робот в точке Б, нужные клетки закрашены
нач
● закрашивание блока
● обход стены
● закрашивание блока
●обход стены
●закрашивание блока
кон
Теперь составим вспомогательные алгоритмы, используемые в
основном алгоритме "из А в Б с закрашиванием":
алг закрашивание блока
● дано |Робот в левом верхнем углу блока 3X5 клеток
● надо |блок закрашен, Робот в его правом нижнем углу
нач
●закрасить; вправо; закрасить; вправо; закрасить; вниз
●закрасить; влево; закрасить; влево; закрасить; вниз
●закрасить; вправо; закрасить; вправо; закрасить; вниз
●закрасить; влево; закрасить; влево; закрасить; вниз
● закрасить; вправо; закрасить; вправо; закрасить; вниз
Кон
алг обход стены
● дано | Робот в правом нижнем углу блока
● надо |Робот в левом верхнем углу следующего блока
нач
●вправо; вверх; вверх; вверх; вверх; вверх; вверх
●вправо; вправо; вниз; вниз
кон
Задание для самостоятельного разбора:
алг из А в Б
● дано | Робот в клетке А
● надо | Робот в клетке Б (рис 51)
Нач
●участок; участок; участок; участок; участок
Кон
алг участок
● дано | Робот в начале участка
● надо | Робот в конце участка
Нач
●вверх; вверх; вправо; вниз; вниз; вправо
Кон
(рис 51)
Дата добавления: 2015-07-11; просмотров: 284 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Задание 15 | | | Задание 1 |