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

19. Составляем и выполняем алгоритмы

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

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

Кратко о теме

Алгоритм помогает решить задачу, разбивая её на точные команды, которые исполнитель выполняет в заданном порядке. Чтобы последовательность сработала, команды должны быть понятны и выполнимы для выбранного исполнителя, а сам он должен прийти к нужному результату. Поэтому при составлении алгоритма учитывают возможности исполнителя, проверяют каждый шаг и следят, не изменился ли результат после перестановки команд.

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

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

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

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

Исполнитель — человек или устройство, способное выполнять команды алгоритма. У каждого исполнителя есть свои возможности: человек умеет брать предметы, а робот может передвигаться по клеткам, если это предусмотрено его устройством. Учитывать эти пределы нужно, чтобы не включить в план действие, которого исполнитель совершить не может.

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

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

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

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

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

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

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

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

Основные понятия алгоритма и их роль

ПонятиеЧто означаетЧто важно проверитьПример
АлгоритмПоследовательность команд для решения задачиПонятность, точность, достижение результатаПлан приготовления бутерброда
ИсполнительТот, кто выполняет командыВозможности и ограниченияЧеловек или Робот
КомандаОтдельное указание исполнителюОднозначность и выполнимость«Перейди на одну клетку вправо»
Система команд исполнителяВсе команды, доступные исполнителюЕсть ли нужная команда в набореПеремещения Робота по клеткам
Результат выполненияТо, что получено после исполнения алгоритмаСовпадает ли итог с цельюГотовый бутерброд или Робот у цели

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

Разбор задач

Приготовление бутерброда

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

  1. Определяем итог: кусок хлеба с маслом и сыром. Выясняем, какие действия необходимы, и не добавляем не относящиеся к цели шаги.
  2. Записываем команды в порядке подготовки: «Возьми тарелку», «Положи на неё хлеб», «Намажь хлеб маслом», «Положи сверху сыр». Каждая команда конкретна и выполнима человеком.
  3. Проверяем последовательность: после каждого действия представляем, что изменилось. Если переставить шаг с хлебом и маслом, намазывать хлеб будет менее удобно, а если пропустить сыр, заданный бутерброд не получится.

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

Маршрут Робота по клетчатому полю

Условие. Робот стоит на клетчатом поле, а цель — закрашенная клетка; между ними есть стены. Предположим, система команд включает перемещения на одну клетку вверх, вниз, влево и вправо. Точное поле не задано, поэтому маршрут нужно составлять по расположению клеток и стен.

  1. Отмечаем начальную клетку, цель и все стены, которые нельзя пересекать. Сначала ищем безопасный проход, а не записываем случайные команды.
  2. Планируем путь по соседним свободным клеткам и записываем каждое перемещение отдельной командой: например, «вправо», «вверх». Каждый шаг должен вести на свободную клетку и входить в систему команд Робота.
  3. Проверяем маршрут по порядку, перемещая Робота мысленно на одну клетку после каждой команды. Если команда приводит к стене или Робот проходит мимо цели, меняем участок пути и снова проверяем весь маршрут.

Ответ. Алгоритм — это последовательность допустимых перемещений от стартовой клетки до закрашенной без столкновения со стенами. Конкретные команды зависят от расположения клеток на поле.

Обход нескольких препятствий

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

  1. Намечаем маршрут по этапам: от старта до первого поворота, затем вокруг препятствий и далее к цели. Деление на участки упрощает проверку и помогает не потерять конечную точку.
  2. Каждый участок записываем отдельными командами из системы исполнителя. Сохраняем порядок: команда для следующего поворота должна идти после перемещений, которые приводят к этому повороту.
  3. Выполняем алгоритм шаг за шагом, отслеживая положение после каждого перемещения. Если обнаруживаем столкновение или уход от цели, исправляем ошибочный участок и проверяем весь путь заново.

Ответ. Верный алгоритм проводит исполнителя через свободные клетки и заканчивается в заданной точке. Без схемы расположения препятствий нельзя перечислить конкретные команды, но способ составления и проверки остаётся тем же.

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

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

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

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

  • Общее указание вроде «иди как-нибудь вокруг стены» неоднозначно: исполнитель не знает, куда именно двигаться. Такое описание кажется понятным человеку, который уже представляет маршрут, но не задаёт точных действий. Замени его конкретными командами и проверь, что каждую можно выполнить без догадки.

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

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

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

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

  • Алгоритм состоит из команд, расположенных в определённом порядке.
  • Алгоритм должен быть понятным, точным и приводить к результату.
  • Исполнитель выполняет только команды из своей системы команд.
  • При составлении алгоритма нужно учитывать возможности исполнителя.
  • Изменение порядка команд может изменить результат.
  • Алгоритм необходимо проверять пошаговым выполнением.

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

Чем алгоритм отличается от обычного совета или общего описания действия?

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

Почему один и тот же алгоритм нельзя передать любому исполнителю?

У разных исполнителей разные возможности и системы команд. Человек может понять команду «нарежь хлеб», а устройство без соответствующих инструментов выполнить её не сможет. Алгоритм нужно составлять с учётом выбранного исполнителя.

Что произойдёт, если поменять местами две команды?

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

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

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

Зачем выполнять алгоритм пошагово, если он уже составлен?

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

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

19. Составляем и выполняем алгоритмы

Учебник

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