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