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