Сегодня ты научишься:
- составлять алгоритмы, содержащие циклическиую конструкцию.
Создай обстановку для Робота в виде лабиринта:
![](images/labirint_1.png)
Разработать алгоритм, который позволит провести Робота из клетки А в клетку Б не составит никакого труда.
Можно составить линейный алгоритм решения данной задачи:
![](images/prog_labirint.png)
А можно выделить блок поворяющихся команд в отдельный алгоритм "обход":
![](images/prog_labirint_obxod.png)
И использовать этот алгоритм в качестве вспомогательного:
![](images/prog_labirint_vsp.png)
После запустка программ результаты в первом и втором случае будут одинаковыми, но второй алгоритм получился более компактным.
Однако, есть еще один вариант решения данной задачи. Воспользуемся специальной командой алгоритмического языка - цикл n раз.
Набери программу и убедись в её работоспособности:
![](images/prog_labirint_cikl.png)
Как видишь, получилась еще более компактная программа.
В общем виде цикл n раз записывается так:
нц число повторений раз
· тело цикла (последовательность команд)
кц
Тело цикла может содержать одну или несколько команд, которые необходимо повторить n раз.
Измени алгоритм из А в Б так, чтобы внутри цикла вызывался вспомогательный алгоритм "обход".
Используя цикл n раз, можно составить алгоритмы для смещения Робота на заданное число клеток в заданном направлении, например:
![](images/vverx.png)
Составь ещё три алгоритма: алг вниз на (арг цел n), алг влево на (арг цел n) и алг вправо на (арг цел n).
В дальнейшем можно использовать эти алгоритмы как вспомогательные при решении различных задач.
В качестве примера рассмотрим алгоритм, выполнив который, Робот закрасит несколько клеток вправо и вернется в исходное положение.
![](images/mkletok.png)
Набери программный код:
![](images/zakrasit-mkletok.jpg)
Обрати внимание, что после запуска этой программы в области вывода (в нижней части окна) появилось сообщение "Введите m:". Это означает, что Робот ждёт целое число - количество клеток, которые нужно будет закрасить. Введи с клавиатуры число и нажми Enter.
Подумай, как изменить эту программу так, чтобы она не содержала вспомогательного алгоритма.
Вспомогательные алгоримы можно вызывать и внутри цикла. Например, Роботу нужно закрасить прямоугольник шириной m клеток и высотой n клеток и вернуться в исходную позицию:
![](images/pryamoug.jpg)
Вот один из алгоритмов решения этой задачи:
Дополни предложенный основной алгоритм - опиши вспомогательные алгоритмы:
алг закрасить ряд (арг цел m)
и
алг вверх на (арг цел n)
Проверь работу своей программы. При вводе значений m=5, n=2 На поле Робота должен появиться такой прямоугольник:
![](images/pryamougol-nik2_5.png)
Если у тебя возникли неразрешимые проблемы при разработке вспомогательных алгоритмов, то смотри образец возможного решения.
.
Теперь можешь выполнить задания к уроку 5 из задачника, используя команду цикл n раз.