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

20. Придумываем и составляем алгоритмы

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

Объяснение темы В оглавлении: 20. Придумываем и составляем алгоритмы

Кратко о теме

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

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

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

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

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

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

Команда — отдельное указание исполнителю выполнить определённое действие. В команде должно быть понятно, какое именно действие требуется, например «положи книгу на полку». Команды нужны, чтобы делить решение задачи на отдельные шаги, которые исполнитель может выполнять по очереди.

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

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

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

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

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

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

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

Проверка алгоритма перед выполнением

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

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

Разбор задач

Книга со стола на полку

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

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

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

Переход от двери к окну в обход стула

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

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

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

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

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

  1. Проверить доступные команды и убедиться, что ими можно взять хлеб и нужные продукты. Если какого-то действия нет, алгоритм в таком виде составить нельзя.
  2. Записать команды в порядке приготовления: положить ломтик хлеба, нанести намазку, добавить начинку. Порядок отражает, что должно происходить с продуктами.
  3. Уточнить, сколько продуктов взять и куда их положить. Это убирает неоднозначность и помогает исполнителю получить готовый бутерброд.

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

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

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

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

Неоднозначная команда вроде «сделай аккуратно» не называет конкретного действия и допускает разные толкования. Её часто используют, потому что в повседневной речи люди понимают смысл по ситуации, но исполнитель алгоритма может этого не уметь. Замените такую фразу на точное указание и проверьте, можно ли понять его только одним способом.

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

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

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

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

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

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

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

Чем алгоритм отличается от простого списка действий?

В алгоритме действия не просто перечислены: они точно сформулированы и расположены в порядке, который ведёт к цели. Он также должен учитывать, кто будет выполнять команды и что этот исполнитель умеет.

Кто может быть исполнителем алгоритма?

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

Почему важно знать систему команд исполнителя?

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

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

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

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

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

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

20. Придумываем и составляем алгоритмы

Учебник

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