ТГ бот

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости…

Информатика9 классРешено по фото 12 октября 2026 в 23:42
Алгоритм для Робота в лабиринте с неизвестным проходом
⚠️

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

Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может. Робот находится в левом нижнем углу огороженного пространства, имеющего форму прямоугольника. Размеры прямоугольника неизвестны. Где-то посередине прямоугольника есть вертикальная стена, разделяющая прямоугольник на две части. В этой стене есть один проход, при этом проход не является самой верхней или самой нижней клеткой стены. Точное расположение прохода неизвестно. Составьте алгоритм для Робота, перемещающий Робота в правый верхний угол прямоугольника. При исполнении алгоритма Робот не должен разрушиться, выполнение алгоритма должно завершиться.

Программа (поля для заполнения):
[не выбрано]
[не выбрано]
[не выбрано]
нц пока [не выбрано]
[не выбрано]
кц
нц пока [не выбрано]
[не выбрано]
кц
нц пока [не выбрано]
[не выбрано]
кц
нц пока [не выбрано]
[не выбрано]
кц
нц пока [не выбрано]
[не выбрано]
кц
кон

Решение

Идея: подняться к верхней стене, дойти вправо до разделяющей стены, спускаться вдоль неё до прохода, пройти в правую часть и подняться в правый верхний угол.

  1. Стена имеет проход не в самой верхней и не в самой нижней клетке. Значит, высота прямоугольника не меньше клеток. Поэтому «вверх» два раза подряд безопасно, а «вниз» после этого тоже безопасно. Первые три строки: вверх, вверх, вниз. Это даёт подъём на клетку.
  2. Первый цикл: поднимаемся до верхней стены.
  3. Второй цикл: идём вправо вдоль верхней строки. Верхняя клетка разделяющей стены сплошная, поэтому Робот остановится у неё.
  4. Третий цикл: пока справа стена, идём вниз. Проход не в нижней клетке, поэтому Робот остановится напротив прохода и не врежется в нижнюю стену.
  5. Четвёртый цикл: идём вправо через проход до правой стены.
  6. Пятый цикл: поднимаемся вверх до верхней стены, это правый верхний угол.

Программа:

вверх
вверх
вниз
нц пока сверху свободно
вверх
кц
нц пока справа свободно
вправо
кц
нц пока справа стена
вниз
кц
нц пока справа свободно
вправо
кц
нц пока сверху свободно
вверх
кц
кон

💡 Почему так

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

Ответ
✓ dzmen.ru

вверх
вверх
вниз
нц пока сверху свободно: вверх, кц
нц пока справа свободно: вправо, кц
нц пока справа стена: вниз, кц
нц пока справа свободно: вправо, кц
нц пока сверху свободно: вверх, кц
кон

Помогло?

Есть ещё задание?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото