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