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