Читайте также:
|
|
Еще усложним условие задачи. Пусть опасные клетки надо отметить не в тупике, а на участке свободного пространства между Роботом и стеной (рис. 56). Изменение ситуации не мешает выполнить разметку уже известным способом, но при возвращении в исходное положение возникает проблема: как узнать, в какой клетке остановиться?
Рис. 56
При непосредственном управлении Роботом мы можем считать шаги, которые он делает при движении к стене. Когда Робот подойдет к стене, мы будем знать пройденное им расстояние и сможем приказать ему сделать такое же число шагов в обратную сторону.
При программном управлении необходимо, чтобы считать шаги мог компьютер. Как это делается, показано в алгоритме:
|
дано | где-то справа от Робота есть стена
надо | закрашены все клетки между Роботом и стеной,
| в которых уровень радиации выше, чем в исходном
| положении Робота
| Робот в исходном положении
нач вещ у | создать ячейку с именем у
цел n | создать ячейку n для подсчета количества шагов
у:= радиация | запомнить значение радиации
n:= 0 | обнулить счетчик
нц пока справа свободно
вправо
n:= n + 1 | увеличить на 1 счетчик количества шагов
если радиация > у
то закрасить
все
кц
нц n раз
влево
кц
кон
В этом алгоритме использованы две величины. Величина у используется для хранения «опасного» уровня радиации. Этот уровень запоминается в исходном положении Робота и в дальнейшем многократно используется. Величина п играет роль счетчика. В начальный момент счетчик «обнуляется» командой n:=0, а затем многократно увеличивается командой n:=n+1.
Дата добавления: 2015-07-14; просмотров: 132 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Порядок действий в арифметических выражениях | | | Модель памяти компьютера |