• Предмет: Информатика
  • Автор: tanyachernykh06
  • Вопрос задан 3 года назад

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

Ответы

Ответ дал: onetfriend
1

Ответ:

Объяснение:

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

алг

нач

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

вправо

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

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

кц

кц

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

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

иначе вниз

все

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

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

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

иначе выход

все

кц

кон

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

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

Приложения:
Вас заинтересует