Предмет: Информатика, автор: m9505577310

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

Приложения:

veretelnikvova4: а что тебе нужно узнать ?
m9505577310: хз я тоже чет недопер
veretelnikvova4: и я о том же
veretelnikvova4: так тут нету точной задачи
veretelnikvova4: которую можно решить
veretelnikvova4: это просто описание и все
Ziorar: Думаю, так можно:

использовать Робот
цел н=0
алг нач
нц
нц пока справа свободно
если снизу свободно то выход всё
вправо
кц
если справа стена и снизу стена то выход всё
вниз
нц пока слева свободно; влево кц
нц пока справа свободно
если сверху стена и снизу стена то закрасить; н:=1 всё
вправо
кц
если н=1 то выход всё
нц пока слева свободно; влево кц
кц
кон

Ответы

Автор ответа: Ziorar
0

Вот программа для Кумира. Выполняет задачу, предполагая следующее:

1) задача- закрасить только клетки в коридоре

2) коридор- это зазор в 1 клетку между двумя стенками

3) раз сказано только об одном коридоре и что остальные расстояния между стенами больше клетки, то имеющийся зазор в 1 клетку между стенкой и внешней границой поля (см.верх рисунка) не считается ни расстоянием между стенами, ни коридором (и значит, коридор не может прилегать границам поля, и клетки у них надо пропускать и не закрашивать). Для пропуска верхних клеток- переход на следующую строку сделан в начале основного цикла, для пропуска нижних клеток сделан выход в строке, где был закрашен коридор.

использовать Робот

цел к=0

алг нач

нц

нц пока справа свободно

если снизу свободно то выход всё

вправо

кц

вниз

нц пока слева свободно; влево кц

нц

если сверху стена и снизу стена то закрасить; к:=1 всё

если справа свободно то вправо иначе выход всё

кц

нц пока слева свободно; влево кц

кц при к=1

кон

Приложения:
Похожие вопросы