Сегодня ты научишься:
- составлять алгоритмы, содержащие циклическиую конструкцию.
Создай обстановку для Робота в виде лабиринта:
Разработать алгоритм, который позволит провести Робота из клетки А в клетку Б не составит никакого труда.
Можно составить линейный алгоритм решения данной задачи:
А можно выделить блок поворяющихся команд в отдельный алгоритм "обход":
И использовать этот алгоритм в качестве вспомогательного:
После запустка программ результаты в первом и втором случае будут одинаковыми, но второй алгоритм получился более компактным.
Однако, есть еще один вариант решения данной задачи. Воспользуемся специальной командой алгоритмического языка - цикл n раз.
Набери программу и убедись в её работоспособности:
Как видишь, получилась еще более компактная программа.
В общем виде цикл n раз записывается так:
нц число повторений раз
· тело цикла (последовательность команд)
кц
Тело цикла может содержать одну или несколько команд, которые необходимо повторить n раз.
Измени алгоритм из А в Б так, чтобы внутри цикла вызывался вспомогательный алгоритм "обход".
Используя цикл n раз, можно составить алгоритмы для смещения Робота на заданное число клеток в заданном направлении, например:
Составь ещё три алгоритма: алг вниз на (арг цел n), алг влево на (арг цел n) и алг вправо на (арг цел n).
В дальнейшем можно использовать эти алгоритмы как вспомогательные при решении различных задач.
В качестве примера рассмотрим алгоритм, выполнив который, Робот закрасит несколько клеток вправо и вернется в исходное положение.
Набери программный код:
Обрати внимание, что после запуска этой программы в области вывода (в нижней части окна) появилось сообщение "Введите m:". Это означает, что Робот ждёт целое число - количество клеток, которые нужно будет закрасить. Введи с клавиатуры число и нажми Enter.
Подумай, как изменить эту программу так, чтобы она не содержала вспомогательного алгоритма.
Вспомогательные алгоримы можно вызывать и внутри цикла. Например, Роботу нужно закрасить прямоугольник шириной m клеток и высотой n клеток и вернуться в исходную позицию:
Вот один из алгоритмов решения этой задачи:
Дополни предложенный основной алгоритм - опиши вспомогательные алгоритмы:
алг закрасить ряд (арг цел m)
и
алг вверх на (арг цел n)
Проверь работу своей программы. При вводе значений m=5, n=2 На поле Робота должен появиться такой прямоугольник:
Если у тебя возникли неразрешимые проблемы при разработке вспомогательных алгоритмов, то смотри образец возможного решения.
.
Теперь можешь выполнить задания к уроку 5 из задачника, используя команду цикл n раз.