Вопрос задан 25.06.2023 в 14:52. Предмет Информатика. Спрашивает Шведова Анна.

2. На бесконечном поле есть горизонтальная и вертикальная стень Правый конец горизонтальной стены

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

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Катеринкин Артём.

Ответ:

Объяснение:

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

алг

нач

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

вправо

нц пока сверху стена

закрасить; выход

кц

кц

нц если справа стена то

закрасить; вниз

иначе вниз

все

кц_при справа стена

нц если справа стена то

закрасить; вниз

иначе выход

все

кц

кон

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

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



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

  1. Помечаем текущую клетку как закрашенную.
  2. Пока справа от робота нет вертикальной стены: a. Двигаемся вправо на одну клетку. b. Помечаем текущую клетку как закрашенную.
  3. Двигаемся вниз на одну клетку.
  4. Пока не достигнут вертикальной стены: a. Двигаемся вниз на одну клетку. b. Помечаем текущую клетку как закрашенную.
  5. Двигаемся влево на одну клетку.
  6. Пока не вернемся к исходной позиции: a. Двигаемся влево на одну клетку. b. Помечаем текущую клетку как закрашенную.
  7. Завершаем выполнение программы.

Этот алгоритм гарантированно закрасит все необходимые клетки, оставляя проходы незакрашенными, и вернет робота в исходную позицию.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос