На Горох
Информатика

24. Два исполнителя

"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.

Объяснение темы В оглавлении: 24. Два исполнителя

Кратко о теме

Два исполнителя — это объекты, каждый из которых действует по своей системе команд. Одну задачу они могут решать по-разному: у них бывают разные начальные положения, возможности и ограничения. Чтобы получить нужный результат, нужно подобрать команды отдельно для каждого, распределить между исполнителями действия и определить их порядок. При проверке важно проследить не только за итогом, но и за каждым шагом.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Исполнитель — объект, который понимает и выполняет команды из заданного набора. Это может быть человек, робот или программа, если для него определены понятные действия. Сначала нужно выяснить, что именно умеет делать исполнитель. Иначе нельзя составить для него выполнимый алгоритм.

Система команд исполнителя — все команды, которые может выполнять данный исполнитель. Например, один робот может двигаться по клеткам, а другой — поворачивать и захватывать предметы. Перечень команд показывает, какими действиями можно решить задачу. Он помогает не включить в программу неизвестные исполнителю указания.

Программа — точная последовательность команд, предназначенная для конкретного исполнителя. Исполнитель выполняет команды по порядку, поэтому перестановка команд может изменить результат. Программу составляют с учётом доступных действий и начального состояния. Так замысел решения превращается в проверяемые шаги.

Два исполнителя — два объекта с отдельными системами команд, для которых составляются и выполняются свои программы. Они могут вместе решать одну задачу, но каждый действует только по своей программе. Это понятие нужно, чтобы различать действия объектов и учитывать их возможности. Так проще разделить общую работу на части.

Как это устроено

Одну задачу приходится описывать разными программами, когда её выполняют разные исполнители. Причина в том, что наборы доступных команд могут отличаться: один объект умеет перемещать предмет, другой — только менять его положение поворотом. Кроме того, исполнители могут начинать работу в разных местах. Поэтому одинаковая последовательность команд не обязательно приведёт обоих к цели.

Чтобы сравнить исполнителей, сначала записывают их исходные положения, затем системы команд и ограничения, а после — требуемый результат. Исходное положение нужно учитывать, потому что оно определяет, какие действия приведут к цели. Системы команд показывают, какие способы решения доступны каждому. Сравнение результата помогает понять, одинаковую ли цель должны получить оба объекта.

Команда, понятная одному исполнителю, может быть неизвестна другому, потому что набор допустимых указаний у каждого свой. Даже знакомая команда бывает невыполнимой: например, шаг вперёд невозможен, если путь перекрыт или исполнитель упирается в границу. Поэтому недостаточно узнать название команды. Нужно проверить и её принадлежность системе команд, и условия выполнения.

Действия распределяют между исполнителями по их возможностям и по тому, какие результаты нужны дальше. Если один готовит объект, а другой завершает работу, сначала должен сработать первый. Иначе второй получит неподготовленный объект и не сможет выполнить свою часть. Значит, план должен указывать не только кто что делает, но и в какой очередности.

Правильность общей работы проверяют по каждой программе и по связи между действиями исполнителей. Сначала выясняют, разрешена ли каждая команда и можно ли выполнить её в текущем состоянии. Затем прослеживают изменения после каждого шага, включая переход от работы одного исполнителя к работе другого. В конце проверяют, получен ли требуемый результат без нарушения ограничений на промежуточных этапах.

Сравнение двух исполнителей

ХарактеристикаИсполнитель 1Исполнитель 2
Исходное положениеГде и в каком состоянии начинает работуГде и в каком состоянии начинает работу
Система командВсе доступные ему командыВсе доступные ему команды
Допустимые действияЧто он может сделать по условиюЧто он может сделать по условию
Ограничения при выполнении командКакие условия нельзя нарушатьКакие условия нельзя нарушать
Получаемый результатЧто должно измениться после работыЧто должно измениться после работы
Программа для решения общей задачиПоследовательность его командПоследовательность его команд

Заполните таблицу до составления программ: так различия исполнителей будут видны сразу. Сверяйте каждую команду с нужной колонкой и учитывайте, в каком состоянии исполнитель начинает работу.

Разбор задач

Дойти до заданной точки

Условие. Два исполнителя находятся в разных начальных точках и должны прийти в одну указанную точку. У каждого есть своя система команд перемещения. Нужно составить отдельную программу для каждого и учесть возможные препятствия.

  1. Для каждого исполнителя отметим старт и цель, затем выберем маршрут с учётом его возможностей.
  2. Запишем маршрут командами именно этого исполнителя и проследим положение после каждого шага.
  3. Проверим, что ни один шаг не проходит через препятствие и оба маршрута заканчиваются в цели.

Ответ. Получаются две программы, которые могут быть разными, хотя приводят к одной точке. Каждая команда в них должна быть допустима для своего исполнителя.

Разделить общую работу

Условие. Один исполнитель должен подготовить объект, а второй — завершить построение. Требуется распределить действия и определить их порядок. Оба должны использовать только собственные команды.

  1. Выделим два результата: подготовленный объект и законченное построение.
  2. Поручим подготовку исполнителю, который умеет её выполнять, а завершение — тому, у кого есть нужные команды.
  3. Поставим действия в зависимый порядок: сначала подготовка, затем построение, после чего проверим общий результат.

Ответ. Работа делится на две части с чёткой очередностью. Второй исполнитель начинает только после того, как первый подготовил объект.

Исправить программы

Условие. В программе первого исполнителя есть неизвестная ему команда, а программа второго заставляет его нарушить ограничение при движении. Нужно найти и исправить ошибки, не меняя цель задачи.

  1. Просмотрим команды первой программы и заменим неизвестную на доступную команду с подходящим действием.
  2. Проследим путь второго исполнителя по шагам и найдём момент, когда нарушается ограничение.
  3. Изменим маршрут до этого момента, затем проверим всю последовательность и конечное положение.

Ответ. Исправленные программы содержат только команды соответствующих исполнителей и не нарушают ограничений. Цель считается достигнутой, если это подтверждает проверка всех промежуточных шагов.

Типичные ошибки

Ученик использует команду первого исполнителя в программе второго, потому что считает названия команд понятными всем объектам. Но у каждого своя система команд, и неизвестное указание выполнить нельзя. Сверьте каждую команду с перечнем для нужного исполнителя. Если её там нет, замените действие доступным способом.

При смешивании последовательностей действия одного исполнителя приписывают другому или выполняют не в том порядке. Так бывает, когда программу записывают как общий список, не отмечая, кому принадлежит команда. Разделите записи и подпишите исполнителей. Затем проверьте, что переходы между частями соответствуют плану работы.

Если забыть исходное положение, можно решить, что одна программа подходит всем. Однако одно и то же движение из разных точек приводит в разные места. Перед проверкой обозначьте старт каждого объекта. После этого проследите его путь отдельно.

Проверка только конечного результата не обнаруживает нарушения на промежуточном шаге. Например, исполнитель может в итоге оказаться у цели, хотя по дороге пересёк запрещённую границу. Проверьте состояние после каждой команды, а не только последней. Так выявляются ошибки, которые скрывает правильный на вид итог.

Связь с другими темами

Для работы с двумя исполнителями нужны понятия алгоритма, команды, исполнителя, системы команд и программы. Если ученик уже умеет записывать последовательность действий и проверять её выполнение, ему проще разделить общую задачу на части. Позже эти идеи пригодятся при составлении алгоритмов для нескольких объектов и моделировании их совместной работы. Они также помогают понимать программы, в которых взаимодействуют разные устройства или программные объекты.

Что запомнить

  • Каждый исполнитель выполняет только команды своей системы команд.
  • Программа составляется с учётом начального состояния исполнителя.
  • Для двух исполнителей могут потребоваться разные программы решения одной задачи.
  • Общую задачу нужно разделять на действия конкретных исполнителей.
  • Команды выполняются в заданной последовательности.
  • Нужно проверять не только результат, но и допустимость каждого шага.

Частые вопросы по теме

Можно ли одну программу использовать для обоих исполнителей?

Иногда можно, если оба исполнителя понимают все команды программы и могут выполнить их из своих начальных положений. Но чаще требуются разные программы из-за различий в системах команд, условиях и ограничениях.

Что делать, если один исполнитель не понимает нужную команду?

Нельзя включать эту команду в его программу. Нужно найти другой способ выполнить действие с помощью доступных команд или поручить действие второму исполнителю, если это возможно.

Как определить, кому поручить конкретное действие?

Сравните системы команд исполнителей и проверьте, кто может выполнить действие без нарушения ограничений. Затем учтите, какое исходное состояние нужно для этого действия и что должно быть готово заранее.

Важно ли, в каком порядке исполнители выполняют команды?

Да, порядок может влиять на результат: действие одного исполнителя иногда создаёт условия для работы другого. Сначала определите зависимости между действиями, а затем задайте последовательность их выполнения.

Как проверить правильность программы для двух исполнителей?

Проверьте, что каждая команда есть в системе команд того исполнителя, которому она назначена, и выполнима в текущем состоянии. Затем проследите весь порядок действий и убедитесь, что получен нужный результат.

Спросить по теме параграфа

24. Два исполнителя

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика (в 2 частях)", Павлов Д.И., Полежаева О.А., Коробкова Л.Н. и др./ Под ред. Горячева А.В.