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

и я о том же

так тут нету точной задачи

которую можно решить

это просто описание и все

Думаю, так можно:<br /><br />использовать Робот<br />цел н=0<br />алг нач<br />нц<br />нц пока справа свободно<br />если снизу свободно то выход всё<br />вправо<br />кц<br />если справа стена и снизу стена то выход всё<br />вниз<br />нц пока слева свободно; влево кц<br />нц пока справа свободно<br />если сверху стена и снизу стена то закрасить; н:=1 всё<br />вправо<br />кц<br />если н=1 то выход всё<br />нц пока слева свободно; влево кц<br />кц<br />кон

Ответ
0 (0 оценок)
0
Ziorar 1 год назад
Светило науки - 557 ответов - 3729 раз оказано помощи

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

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

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

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

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

цел к=0

алг нач

нц

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

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

вправо

кц

вниз

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

нц

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

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

кц

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

кц при к=1

кон

Остались вопросы?