- Шульга Е. В.
- Основы алгоритмизации и программирования
- Просмотров: 25359
Робот. Циклы "ПОКА" и "ПОВТОРИ"
Часто исполнителю надо выполнить какую-то последовательность команд несколько раз. Например, в задаче на рисунке Робот должен подойти к ряду клеток, которые надо засадить, и затем выполнить 6 раз команды вперед(1) и посади.
В данном случае эти команды надо повторить только 6 раза и можно легко 6 раз написать одинаковые команды. Но представьте, что надо сделать одинаковые операции 100 или 200 раз! В программировании в таких случаях используется специальная команда (оператор), которая говорит исполнителю, что какую-то часть программы надо сделать несколько раз.
Цикл — это многократное исполнение последовательности команд.
Решим эту задачу, используя цикл ПОВТОРИ (цикл с известным числом повторений). Программа с использованием оператора цикла выглядит так:
Правила использования оператора цикла
- Цикл повтори используется тогда, когда число повторений цикла заранее известно или может быть вычислено.
- Оператор цикла начинается заголовком цикла - ключевым словом повтори, за которым в скобках указывается нужное количество повторений цикла.
- Тело цикла начинается открывающей фигурной скобкой { и заканчивается закрывающей }.
- В цикле выполняются все операторы, заключенные в скобки.
- Если тело цикла включает всего один оператор, скобки можно не ставить.
- Для того, чтобы легче разбираться в программе, применяют специальную систему записи с отступами: все команды, входящие в цикл, смещают вправо на 2-3 символа — это позволяет сразу видеть, где начинается и где заканчивается цикл.
Алгоритмы с обратной связью
При решении сложных задач ситуация часто известна не полностью и надо анализировать обстановку, которая складывается вокруг исполнителя. Человек очень часто не знает, сколько шагов ему надо пройти и не задумывается об этом, потому что он знает, куда он идет, то есть знает, где (при каком условии) остановиться.
Обратная связь – это информация об окружающей обстановке, которую исполнитель использует для выработки дальнейших действий.
Робот имеет датчики, которые позволяют ему получать информацию об обстановке. Датчики определяют, например, есть ли стена в каком-то направлении. Чтобы использовать эту информацию в программе, в СКИ Робота есть специальные логические команды.
Логическая команда – это вопрос, на который исполнитель отвечает “да” или “нет” в зависимости от обстановки.
СКИ Робота включает несколько логических команд:
справа_стена
слева_стена
впереди_стена
сзади_стена
справа_ клумба
слева_ клумба
впереди_ клумба
сзади_клумба
справа_свободно
слева_свободно
впереди_свободно
сзади_свободно
грядка
база
Последние две команды определяют, есть ли грядка(или база) в клетке, где сейчас находится Робот.
Решим ту же задачу, используя цикл ПОКА (цикл с НЕизвестным числом повторений). Программа с использованием оператора цикла выглядит так:
Правила использования цикла пока
- Цикл пока используется тогда, когда число повторений цикла заранее неизвестно, но ограничено каким-то условием.
- Оператор цикла начинается заголовком цикла – ключевым словом пока, за которым в фигурных скобках указывается условие, при котором выполняется цикл; если условие перестает быть верным (истинным), выполнение цикла заканчивается и исполнитель переходит к следующей команде.
- Условие проверяется в начале цикла, то есть если перед выполнением цикла условие ложно, то цикл не выполнится ни разу.
- В цикле выполняются все операторы, заключенные в фигурные скобки;
- Если тело цикла включает всего один оператор, скобки можно не ставить.
Использование цикла пока позволяет нам решать задачи, в которых некоторые данные (например, длина стенок) заранее неизвестны.
Использован материал из книги "Алгоритмы и исполнители", автор Поляков К.