7Б 11.10.2008 Задание на робота

Архив с примерами стартовых обстановок: http://server.179.ru/~dk/robot/fields_2009_all.zip


Ваши решения должны быть записаны в файлах с именами:
October/11/02-A.kum
October/11/02-B.kum
October/11/02-C.kum
и т.д.

Что умеет робот?

Полное ветвление

если условие
то последовательность команд
иначе последовательность команд
все

Неполное ветвление

если условие
то последовательность команд
все

Условия

клетка закрашена
клетка чистая

Задание 02-A

На бесконечном поле имеется стена. Робот находится в клетке, прилегающей к стене, ниже стены. Закрасьте все клетки вокруг стены, то есть если длина стены n клеток, то нужно закрасить 2n+4 клеток, касающихся стены стороной или углом.


Оформите решение в виде алгоритма с названием "Закрасить всё вокруг стены находясь снизу".


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/A

Задание 02-B

На бесконечном поле имеется стена. Робот находится в клетке, прилегающей к стене, выше или ниже стены. Закрасьте все клетки вокруг стены, то есть если длина стены n клеток, то нужно закрасить 2n+4 клеток, касающихся стены стороной или углом.


Оформите решение в виде двух алгоритмов "Закрасить всё вокруг стены находясь снизу" и "Закрасить всё вокруг стены находясь сверху", и одного алгоритма "Закрасить всё вокруг стены", содержащего инструкцию ветвления "Если-то-иначе-все" и вызывающую один из двух вспомогательных алгоритмов в зависимости от первоначального расположения робота.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/B

Задание 02-C

Робот находится в произвольной клетке, где-то справа от робота есть стена. Робот должен закрасить все клетки начиная от начальной вправо до стены, включая начальную клетку и вернуться в начальную клетку.


Оформите решение в виде алгоритма с названием "Закрасить ряд вправо затем вернуться".


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/C

Задание 02-D

Робот находится в произвольной клетке прямоугольного поля. Закрасьте все клетки, находящиеся правее и выше робота, то есть все клетки прямоугольника, левым нижним углом которого является начальное положение робота а правый верхний угол которого совпадает с правым верхним углом поля.


Используйте вспомогательный алгоритм из предыдущей задачи.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/D

Задание 02-E

Выполните предыдущее задание при условии, что слева от начального положения робота может быть стена.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/E

Задание 02-F

Внутри прямоугольного поля есть вертикальная стена, соединяющая верхнюю и нижнюю границы поля и делящая поле на две части. В стене есть проход в одну клетку, причем эта клетка не является самой верхней или самой нижней клеткой поля. Робот находится в произвольной клетке в левой части поля. Переместите робота в правую часть поля.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/F

Задание 02-G

Решите предыдущую задачу при дополнительном условии, что проход может быть в самом верхнем или самом нижнем ряду поля.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/G

Задание 02-H

Робот находится в левом конце горизонтального коридора. Закрасьте все клетки коридора через одну (закрашенная – незакрашенная – закрашенная – незакрашенная и т.д.).


Клетка, где находится робот первоначально, должна быть закрашена.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/H

Задание 02-I

Робот находится в левом верхнем углу прямоугольного поля. Закрасьте все клетки поля в шахматном порядке. Клетка, где находится робот первоначально, должна быть закрашена.


Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /usr/lib/kumir/fields/02/I