Просмотр содержимого документа
«Цикл пока для решения задач ОГЭ в среде исполнителя Робот»
Цикл «пока» (цикл с предусловием) для решения задач ОГЭ
Цикл пока (цикл с предусловием, итерационный цикл) – это составная команда, которая будет повторяться до тех пор, пока выполняется условие, записанное после ключевого слова пока.
В общем случае цикл пока имеет вид:
нц пока условие (логическое выражение)
Тело цикла (набор команд)
кц
В некоторых случаях цикл пока может
выполняться бесконечно, то есть не сможет завершиться
либо
2) ни разу не выполниться.
В первом случае, если условие в цикле пока всегда будет истинным, тогда цикл никогда не завершится, т.е. говорят, что произошло «зацикливание». Поэтому в теле цикла должны быть такие команды, которые изменяют условие задачи. Во втором случае тело цикла не выполнится ни разу, если условие в цикле пока первоначально является ложным.
Условия или логические выражения в цикле пока могут быть простыми и составными. Составное условие состоит из нескольких простых условий, объединенных ключевыми словами не, и, или.
Система команд исполнителя Робот | Команды - условия |
закрасить вверх вниз влево вправо | клетка закрашена клетка чистая сверху стена сверху свободно снизу стена снизу свободно справа стена справа свободно слева стена слева свободно |
Составное условие вида «условие 1 и условие 2» истинно только в том случае, если истинны оба условия. Если хотя бы одно из условий не верно, то результат будет ложным и второе условие можно не проверять.
Составное условие вида «условие 1 или условие 2» истинно тогда, когда истинно хотя бы одно из условий. Если одно из двух условий верно. То результат будет истинным.
Рассмотрим несколько задач.
Задачи
Составим программу, которая закрашивает клетки, указанные на рисунке. Начальное положение Робота – Р. Конечное положение Роботы может быть любым.
№1 (два варианта решения)
использовать Робот алг нач . нц пока снизу стена и слева свободно . . закрасить . . влево . кц . нц пока слева стена и сверху свободно . . закрасить . . вверх . кц . нц пока сверху стена . . закрасить . . вправо . кц кон | |
2-й вариант решения с простыми условиями
использовать Робот алг нач . нц пока слева свободно . . закрасить . . влево . кц . нц пока сверху свободно . . закрасить . . вверх . кц . нц пока сверху стена . . закрасить . . вправо . кц кон | |
№2 (один из вариантов решения) использовать Робот алг нач . нц пока слева свободно . . влево . кц . нц пока сверху свободно . . вверх . кц . закрасить . нц пока снизу свободно . . вниз . кц . закрасить кон | |
№3 (один из вариантов решения) использовать Робот
использовать Робот алг нач . нц пока сверху свободно . . вверх . кц . нц пока сверху стена . . влево . кц . закрасить . вверх . нц пока справа стена . . закрасить . . вверх . кц . кон |
№4 (один из вариантов решения)
использовать Робот алг нач . нц пока справа свободно . . вправо . кц . нц пока справа стена . . закрасить . . вверх . кц . закрасить . вправо . нц пока снизу стена . . закрасить . . вправо . кц кон |
№5 (один из вариантов решения)
использовать Робот алг нач . нц пока сверху свободно . . закрасить . . вверх . кц . нц пока слева свободно . . закрасить . . влево . кц . закрасить . нц пока слева стена . . вниз . кц . влево . нц пока сверху стена . . закрасить . . влево . кц . закрасить . вверх . нц пока справа стена . . закрасить . . вверх . кц кон | |