"Информатика (в 3 частях)", Семёнов А.Л., Рудченко Т.А.
Робик — исполнитель, который действует на клетчатом поле по заданным командам. Конструкция повторения позволяет несколько раз выполнить одну команду или целую группу команд, не записывая их подряд. Нужно понимать, где находится тело цикла, сколько повторений задано и как меняется положение Робика после каждого прохода. С помощью повторений составляют короткие алгоритмы движения по квадрату и другим регулярным маршрутам.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Робик — исполнитель с фиксированным набором команд. Он умеет перемещаться вперёд по клеткам поля и поворачиваться, например направо, поэтому меняются его положение и направление. Эти сведения нужны, чтобы после каждой команды отслеживать маршрут Робика.
Конструкция повторения — способ записать команду или несколько команд так, чтобы Робик выполнил их заданное число раз. Она заменяет длинную запись одинаковых действий короткой и удобной. Благодаря ей алгоритм легче читать и проверять.
Тело цикла — команда или последовательность команд внутри конструкции повторения. При каждом повторе Робик выполняет всё тело в указанном порядке. По телу цикла можно понять, какое маленькое действие многократно повторяется.
Число повторений — количество выполнений тела цикла. Оно указывается в команде повторения и должно быть задано заранее, чтобы Робик знал, когда остановить цикл. Если число равно нулю, тело не выполняется.
Повторение сокращает алгоритм потому, что одинаковые команды не нужно копировать много раз. Например, пять команд «вперёд» можно заменить одной конструкцией «повторить 5 раз: вперёд». Такая запись уменьшает вероятность пропустить команду или ошибиться в их порядке.
Сначала Робик считывает число повторений, затем выполняет тело цикла от начала до конца. После этого он возвращается к началу тела и проверяет, остались ли ещё повторы. Когда заданное число выполнений исчерпано, Робик переходит к следующей команде алгоритма.
Тело цикла находят по структуре записи: это команда или все команды, помещённые после команды повторения и относящиеся к ней. Оно начинается с первой команды внутри конструкции и заканчивается перед командой, которая уже не должна повторяться. Если в тело включить не все нужные действия, алгоритм даст другой результат.
Результат можно предсказать по одному выполнению тела цикла. Сначала определяют, сколько шагов и поворотов сделал Робик за один проход, затем мысленно повторяют это изменение нужное число раз. Например, тело «вперёд 3 раза» за один проход даёт три шага, поэтому за четыре повтора Робик пройдёт 12 клеток в одном направлении.
Повторения можно соединять с другими командами и вкладывать одно в другое. Так получают регулярные маршруты: для квадрата четыре раза повторяют движение вдоль стороны и поворот. Во вложенной конструкции внутренний цикл полностью выполняется при каждом повторе внешнего, поэтому сложный путь удобно разбирать по уровням.
| Элемент | Что означает | Что происходит при выполнении | Пример применения |
|---|---|---|---|
| Команда повторения | Указывает, что следующие команды нужно выполнить несколько раз | Запускает многократное выполнение тела цикла | Повторить 4 раза |
| Тело цикла | Одна команда или группа команд, выполняемая при каждом повторе | Выполняется целиком при каждом проходе цикла | Вперёд; направо |
| Число повторений | Задаёт, сколько раз выполнить тело цикла | После указанного количества повторов цикл заканчивается | 4 |
| Обычный алгоритм без повторения | Последовательность команд, записанная отдельно | Каждая команда выполняется только один раз | Вперёд; направо; вперёд; направо |
| Вложенное повторение | Конструкция повторения, расположенная внутри другой конструкции повторения | Внутренний цикл полностью выполняется при каждом повторе внешнего | Повторить 4 раза: повторить 2 раза: вперёд; направо |
При чтении таблицы сначала найдите команду повторения и число рядом с ней. Затем определите тело цикла и отделите его от команд, выполняющихся после цикла.
Сравнение с обычным алгоритмом помогает увидеть пользу сокращённой записи. Для вложенного повторения считайте отдельно внешний и внутренний уровни.
Нужно записать алгоритм, по которому Робик сделает 5 шагов вперёд. Все действия одинаковы, поэтому нет смысла записывать команду «вперёд» пять раз. Подойдёт одно тело цикла с числом повторений 5.
Ответ: повторить 5 раз: вперёд. Робик выполнит пять шагов, а команда повторения не считается отдельным шагом.
Сторона квадрата равна 3 клеткам. Для прохождения одной стороны нужны три команды «вперёд», а затем поворот направо переводит Робика к следующей стороне. Квадрат имеет четыре стороны, значит, такую пару действий нужно повторить четыре раза.
Ответ: повторить 4 раза: повторить 3 раза: вперёд; направо. После выполнения Робик обойдёт квадрат и вернётся к исходному направлению.
Внешнее повторение выполняется 3 раза, внутреннее — 2 раза, а тело внутреннего цикла состоит из команд «вперёд; направо». Сначала нельзя просто сложить 3 и 2: это разные уровни управления. Нужно узнать результат двух внутренних проходов, а затем повторить его трижды.
Ответ: Робик окажется в положении, полученном после шести шагов и шести поворотов; направление совпадёт с исходным, так как шесть поворотов направо образуют полтора полных оборота. Точное положение на поле зависит от начальной клетки и направления.
Ученик считает команду повторения отдельным действием Робика и прибавляет её к числу шагов. Так происходит из-за смешения управляющей конструкции и команд тела цикла. Проверьте себя: подсчитывайте только реальные перемещения и повороты.
В тело цикла помещают не все команды, которые должны повторяться. Обычно забытая команда оказывается после цикла и выполняется лишь один раз. Для проверки выпишите один полный проход и убедитесь, что в нём есть каждое нужное действие.
Иногда указывают неправильное число повторений, например повторяют поворот четыре раза без прохождения сторон квадрата. Ошибка возникает, когда число сторон путают с количеством шагов или не учитывают длину стороны. Проверьте отдельно один проход и затем спросите себя, сколько таких проходов нужно.
Во вложенных циклах числа повторов складывают вместо последовательного разбора уровней. Из-за этого неверно определяется число шагов и конечное положение Робика. Сначала вычислите результат внутреннего цикла, а затем умножьте количество его полных запусков внешним циклом.
До изучения повторения нужно уметь выполнять команды Робика по порядку, отслеживать его положение и направление на поле. Это опирается на навыки работы с линейными алгоритмами.
Конструкция повторения продолжает изучение линейных алгоритмов и подготавливает к циклам в языках программирования. В дальнейшем она поможет понять вложенные циклы и условные команды.
Повторения особенно полезны для маршрутов с регулярным рисунком: квадратов, прямоугольников и других повторяющихся траекторий. Такой способ записи делает алгоритм короче и удобнее для проверки.
Чем конструкция повторения отличается от нескольких одинаковых команд, записанных подряд?
При записи подряд каждая одинаковая команда указывается отдельно. Конструкция повторения заменяет такую длинную последовательность одной записью с числом повторений.
Какие команды входят в тело цикла?
В тело цикла входят команда или группа команд, которые должны выполняться снова и снова. Его границы определяются записью алгоритма: после команды повторения идут команды, относящиеся к этому повторению.
Что произойдёт, если указать число повторений, равное нулю?
Тело цикла не будет выполнено ни одного раза. Робик сразу перейдёт к командам, записанным после конструкции повторения.
Как узнать, где окажется Робик после выполнения цикла?
Сначала определите результат одного выполнения тела цикла: сколько клеток пройдено и куда направлен Робик. Затем повторите этот результат заданное число раз, учитывая каждый поворот.
Как считать число повторений во вложенных циклах?
Сначала разберите внутренний цикл и найдите результат одного его выполнения. Затем учтите, сколько раз внутренний цикл полностью запускается внешним циклом.
Робик. Конструкция повторения