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