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