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