ispolnitel_robot

advertisement
Команда условия.
Составление комбинированных
алгоритмов
08.05.2016
Ответьте на вопросы
1.
2.
3.
4.
5.
6.
Формат команды повторить, цикла пока.
Есть ли разница в использовании этих команд?
Что представляют собой составные условия?
Какие логические связки в них используются?
Составьте условие, которое будет означать, что
Робот находится в левом верхнем углу поля.
Составьте условие, которое будет означать, что
Робот не находится в левом нижнем углу поля.
Составьте условие, проверяющее, что с одной из
сторон клетки, где находится Робот, есть стена.
Команда ветвления
условие
нет
действия 2
да
действия 1
если <условие> то
действия 1
иначе
действия 2
конец
условие
нет
да
действия 1
если <условие> то
действия 1
конец
Пример
Робот находится в горизонтальном коридоре,
нижняя граница которого сплошная, а в верхней
имеются выходы. Провести Робота через коридор
и закрасить клетки коридора, не имеющие верхних
границ.
*
вправо
нц пока не снизу свободно
если сверху свободно то
закрась
конец
вправо
кц
Упражнения
В ряду клеток левее Робота некоторые клетки
закрашены. Составьте алгоритм, который
закрашивает клетки ниже каждой закрашенной
клетки.
Рассмотрите задачу для случаев, когда
а) известно общее количество клеток левее
Робота (например, 10 клеток).
б) общее количество клеток левее Робота
неизвестно.
Клетки, которые
надо закрасить
*
Упражнения
а) повторить 10 раз
влево
если закрашено то
вниз; закрась; вверх
конец
конец
Клетки, которые
надо закрасить
б) нц пока слева свободно
влево
если закрашено то
вниз; закрась; вверх
конец
кц
*
Задание 1
Составьте алгоритм прохождения Робота по
коридору (размер поля и форма коридора произвольные)
от левого нижнего угла поля к правому верхнему.
Коридор имеет ширину одна клетка и тянется
слева-снизу вправо-вверх.
Б
*
Решение
нц пока сверху свободно или справа свободно
если сверху свободно то
вверх
иначе
Б
вправо
конец
кц
если сверху свободно то
вверх
конец
если справа свободно то
вправо
конец
*
Задание 2
Известно, что Робот находится внутри коридора
(длина коридора неизвестна). Составить
алгоритм для закрашивания Роботом всех клеток
коридора и возвращения его в исходное положение.
а)
*
б)
*
Решение
нц пока снизу свободно
закрась; вниз
кц
закрась
нц пока сверху свободно
вверх
кц
*
Решение
нц пока не сверху свободно и не снизу свободно
закрась; вправо
кц
влево
нц пока не сверху свободно и не снизу свободно
влево
кц
вправо
нц пока не закрашено
закрась; вправо
*
кц
Задание 3
Известно, что Робот находится над стеной
(длина стены неизвестна). Составить алгоритм
для закрашивания Роботом всех клеток под
стеной. Конечное положение Робота может
быть произвольным.
*
Решение
нц пока не снизу свободно
вправо
кц
вниз
влево
нц пока не сверху свободно
закрась
влево
кц
*
ДЗ
Составьте алгоритм закрашивания Роботом
всех клеток поля. Размер поля 6X8.
*
Решение задачи ДЗ
1 способ:
Повторить 8 раз
закрась
повторить 5 раз
вправо
закрась
конец
повторить 5 раз
влево
конец
если сверху свободно то
вверх
конец
конец
2 способ (размер поля произвольный):
нц пока сверху свободно или не закрашено
закрась
нц пока справа свободно
вправо
закрась
кц
если сверху свободно то
вверх
закрась
нц пока слева свободно
влево
закрась
кц
конец
если сверху свободно то
вверх
конец
кц
Download