Хорошо, давай попробуем разобраться с задачей. Текст задачи говорит о том, что исполнитель Робот находится внутри ограниченного пространства, имеющего форму прямоугольника. Нужно составить алгоритм, закрашивающий все клетки, расположенные в первом и последнем столбце прямоугольника.
Для программирования на КуМире нам понадобятся такие команды как:
вверх- Робот перемещается на одну клетку вверх;вниз- Робот перемещается на одну клетку вниз;вправо- Робот перемещается на одну клетку вправо;влево- Робот перемещается на одну клетку влево;закрасить- Робот закрашивает клетку, в которой он находится.
Теперь нам надо разработать алгоритм. Учтем, что размеры прямоугольника нам неизвестны, поэтому роботу нужно будет это установить самостоятельно, перемещаясь по периметру.
Вот примерный алгоритм для решения задачи:
- Пока справа не стена - двигаемся вправо (это позволит определить ширину прямоугольника).
- Закрасим последний столбец, перемещаясь вниз до тех пор, пока не упрёмся в стену, закрашивая каждую клетку на пути.
- Потом робот должен вернуться в исходное положение, которое находится в первом столбце.
- Теперь можно закрасить первый столбец, двигаясь вверх до упора, закрашивая каждую клетку на пути.
Пример кода на КуМире может выглядеть так:
алг начало
цикл пока свободно вправо
вправо
конец цикла
цикл пока свободно вниз
закрасить
вниз
конец цикла
закрасить
цикл пока свободно вверх
вверх
конец цикла
цикл пока свободно влево
влево
конец цикла
цикл пока свободно вверх
закрасить
вверх
конец цикла
закрасить
конец
Такой алгоритм поможет Роботу определить края прямоугольника и закрасить первый и последний столбцы. Важно помнить, что закрасить нужно клетки не только по пути вниз, но и в тот момент, когда Робот достигнет нижней границы прямоугольника, так как последний цикл вниз не закрасит нижнюю клетку. Аналогично и при движении вверх.