1. Робот стоит в центре поля. Рядом стен нет. Что произойдет при выполнении
следующей группы команд:
нц пока справа свободно
вправо
влево
кц
2. Для стартовой обстановки, изображенной на рисунке, написана программа. Робот находится слева от стены. Высота стены и расстояние до нее любое. Робот должен обойти стену и закрасить клетки с противоположной стороны стены. Ниже дана программа без 10 и 11 строки. Какие команды нужно прописать в этих строках, чтобы программа работала верно?
1. нач
2. нц пока справа свободно
3. вправо
4. кц
5. нц пока не справа свободно
6. вниз
7. кц
8. вправо
9. вверх
10. нц пока не слева свободно
11.
12.
13. кц
14. кон
При выполнении следующей группы команд:
- нц пока справа свободно
- вправо
- влево
- кц
1) Первая команда "нц пока справа свободно" означает, что надо повторять следующие команды, пока справа от робота есть свободное место.
2) Команда "вправо" перемещает робота на одну клетку вправо.
3) Команда "влево" перемещает робота на одну клетку влево.
4) Команда "кц" указывает на конец цикла.
Теперь проанализируем последовательность команд:
- нц пока справа свободно
- вправо
- влево
- кц
1) Первая команда "нц пока справа свободно" проверяет, есть ли свободное место справа от робота.
2) Команда "вправо" перемещает робота на одну клетку вправо.
3) Команда "влево" перемещает робота на одну клетку влево.
4) Команда "кц" означает, что цикл закончился.
В данном случае, когда вторая команда - "вправо", следующая команда - "влево", робот двигается вправо и затем сразу же возвращаетя в исходное положение, то есть неизменно остается в центре поля.
2. Для того чтобы программа работала верно и робот обошел стену и закрасил клетки с противоположной стороны стены, в 10 и 11 строках нужно прописать следующие команды:
10. вниз
11. вверх
В данной программе, робот совершает следующие действия:
1) Начинает выполнение программы.
2) Проверяет, есть ли свободное место справа от робота.
3) Если есть, перемещается вправо.
4) Возвращается в исходное положение и проверяет, есть ли свободное место справа от робота.
5) Если нет, перемещается вниз.
6) Проверяет, есть ли свободное место справа от робота.
7) Если есть, перемещается вправо.
8) Перемещается вверх.
9) Проверяет, есть ли свободное место слева от робота.
10) Ожидает команды и завершает выполнение программы.
Таким образом, добавление команд "вниз" и "вверх" в 10 и 11 строки программы позволяет роботу обойти стену и закрасить клетки с противоположной стороны.