Школа179: /Информатика//Информатика / Архив/2010//Информатика / Архив / 2010 / 7 Б/20091116 ...

 
Это старая версия Информатика/Архив/2010/7Б/20091116 за 2009-11-15 23:06:05..

7Б «Робот». Задание №9: Рекурсия


Плюсник
Выполненные задания должны быть сохранены в каталоге ~/kumir/09/.
Стартовые обстановки находятся в каталоге /home/pub/kumir/fields/09/.
Загрузить среду Кумир для Windows можно отсюда
Архив со стартовыми обстановками (для самостоятельной работы) можно загрузить отсюда

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

Алгоритм может вызывать сам себя!
Пример рекурсивного алгоритма, перемещающего робота вправо до стены:


Аналогичный алгоритм, перемещающий робота вправо до стены и закрашивающий клетку у стены:


Алгоритм, перемещающий робота вправо до стены, затем возвращающий его в исходную клетку:


Задание 09-А

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


04-A

Задание 09-B

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


04-B

Задание 09-С

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


04-D

Задание 09-D

Выполните задание НОМЕР при дополнительном условии, что робот должен закрасить все клетки, через которые он проходит.

Задание 09-E

Выполните задание НОМЕР при дополнительном условии, что робот должен закрасить все клетки между своим первоначальным расположением и первоначально закрашенной клеткой.

Задание 09-F

Выполните задание НОМЕР при дополнительном условии, что робот должен закрасить все клетки между первоначально закрашенной клеткой и своим конечным расположением.

Задание 09-G

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

Задание 09-H

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


04-E

Задание 09-I

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


04-F

Задание 09-J

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


04-G

Задание 09-K

Робот находится снизу от бесконечной стены, не обязательно в соседней со стеной клетке. Напишите алгоритм, который передвигает робота по диагонали вправо-вверх до стены, затем робот «отражается» от стены и проходит такое же расстояние вправо-вниз. При этом робот должен закрасить все пройденные клетки.


04-H

Задание 09-L

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


04-K

Задание 09-M

Робот находится в левом конце горизонтального коридора. Коридор состоит из нечетного числа клеток. Переведите робота в среднюю клетку коридора.


04-L

Задание 09-N

Робот находится в горизонтальном коридоре, где-то справа от робота есть стена. Переместите робота в клетку, расстояние от которой до стены вдвое меньше, чем расстояние до стены от первоначального расположения робота (в случае нечетного расстояние «вдвое меньше» означает деление с отбрасыванием дробной части).

Задание 09-O

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


Задание 09-P

Робот находится в горизонтальном коридоре. Справа от робота есть тупик. Возможно, что справа от робота есть клад (закрашенная клетка). Напишите программу, которая перемещает робота в клетку с кладом, если есть клад, или возвращает его в исходное положение, если клада нет.


04-I

Задание 09-Q

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


04-J

Задание 09-R

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


04-M

Задание 09-A


Решение задачи сохраните в файле ~/kumir/09/A.kum
Проверьте свой алгоритм на всех стартовых обстановках робота, находящихся в каталоге /home/pub/kumir/fields/09/A


 
Файлов нет.[Показать файлы/форму]