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