Что такое циклический алгоритм?
Выбор начального положения
Практическая работа № 24 «Циклические алгоритмы»
Практическая работа № 25 «Вложенные циклы»
Очень важно правильно выбрать начальное положение Робота — клетку, в которой он стоит перед началом цикла.
В рассмотренной выше задаче выгодное начальное положение — это клетка Г (рис. 6.22), потому что Робот может сразу начать выполнение цикла. Можно также начать с клетки Д, при этом команды вправо и закрась в теле цикла нужно поменять местами. Если Робот стоит в другом месте, его лучше сначала привести в одну из этих клеток.
Рис. 6.22
Роботу нужно закрасить все клетки и прийти в клетку Б (База) — рис. 6.23. Выберите наилучшее положение Робота для начала цикла и напишите программу для решения задачи. Сравните свой вариант с решениями одноклассников. Как можно определить, какой вариант лучше?
Рис. 6.23
Вложенные циклы
Рассмотрим задачу, в которой Роботу нужно закрасить поле размером 6x4 клетки (рис. 6.24).
Рис. 6.24
Нам уже несложно написать цикл, который закрашивает верхний ряд:
| закрасить один ряд
нц 6 раз
вправо
закрасить
кц
Символ «|» начинает комментарий.
Комментарии — это пояснения для человека внутри текста программы.
Транслятор пропускает все комментарии, поэтому работа программы не изменится, если комментарии убрать. Комментарии помогают разобраться в том, как работает программа. Это очень помогает, если программа написана давно, и вы уже всё забыли, или её написал другой человек.
После выполнения цикла Робот остановится в клетке А. Для того чтобы такой же цикл можно было использовать ещё раз, нужно перевести Робота в клетку Б, например, так:
| перейти к следующему ряду
вниз
нц 6 раз влево кц
Предложите другой вариант перевода Робота из клетки А в клетку Б. Какой из них лучше? Как вы рассуждали?
У нас всего 4 ряда, поэтому можно использовать цикл
нц 4 раз
| закрасить один ряд
нц 6 раз
вправо
закрасить
кц
| перейти к следующему ряду вниз
нц 6 раз влево кц
кц
Здесь фоном выделены два цикла, которые оказались внутри другого цикла. Такие циклы называются вложенными.
Вложенный цикл — это цикл, находящийся в теле другого цикла.
Что сделает Робот, если в последней программе заменить число 4 на 6 и число 6 на 15?
В какой клетке остановится Робот после выполнения программы?
Как решить задачу, показанную на рис. 6.24, используя процедуры Ряд и Переход (без вложенных циклов)? Сравните два решения.
Следующая страница Выводы. Интеллект-карта