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