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