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