На Горох
Информатика, 6 класс

Вспомогательный алгоритм

"Информатика", Семёнов А.Л., Рудченко Т.А.

Объяснение темы

Кратко о теме

Вспомогательный алгоритм — отдельная часть решения, которую можно запускать из основного алгоритма. Он помогает разбить большую задачу на понятные действия и не записывать несколько раз одинаковые команды. У такого алгоритма есть имя и последовательность команд, а при вызове выполнение на время переходит к нему. Параметры позволяют применять одну и ту же последовательность к разным данным, например строить квадраты разного размера.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Алгоритм — это точная последовательность команд, приводящая к решению задачи. Команды выполняются в установленном порядке, если алгоритм не задаёт другой порядок. Это определение помогает отличать алгоритм от простого набора советов: каждое действие должно быть понятным исполнителю. Упорядоченные команды позволяют заранее проследить, что будет происходить.

Вспомогательный алгоритм — отдельный алгоритм, который вызывают из другого алгоритма, чтобы выполнить некоторую часть общей задачи. Он нужен, когда решение удобно разделить на части или в нём встречается повторяющееся действие. Такой фрагмент можно описать один раз, а затем использовать там, где он необходим. Это делает запись короче и понятнее.

Вызов вспомогательного алгоритма — команда, по которой выполнение переходит к этому алгоритму. После его завершения работа продолжается со следующей команды вызвавшего алгоритма. Вызов нужен, чтобы указать, в какой момент выполнить выделенную часть задачи. Сам вызов не содержит всех команд этой части, а запускает её описание.

Параметр вспомогательного алгоритма — значение, которое передают ему при вызове, чтобы он мог работать с разными исходными данными. Например, длину стороны можно передать алгоритму построения квадрата. Параметр нужен, чтобы не создавать отдельный алгоритм для каждого размера. Команды остаются прежними, а переданное значение меняет результат их выполнения.

Как это устроено

Большую задачу трудно читать и проверять, если все команды записаны одной длинной цепочкой. Поэтому её делят на небольшие действия, каждое из которых выполняет понятную часть работы. Если действие повторяется, его выделяют во вспомогательный алгоритм, чтобы не переписывать одинаковые команды. Так проще найти ошибку и исправить её в одном месте, а не в нескольких копиях.

Вспомогательный алгоритм записывают отдельно от основного: сначала указывают его имя, а затем — последовательность команд. Имя помогает понять назначение части алгоритма и сослаться на неё из основного. Например, можно описать алгоритм «ПостроитьОкно», а команды рисования окна поместить внутрь его описания. Основной алгоритм при этом остаётся планом всей задачи, а не подробным повтором каждого действия.

Когда основной алгоритм доходит до вызова, его выполнение приостанавливается. Исполнитель переходит к описанию вспомогательного алгоритма и выполняет его команды по порядку. Когда эти команды закончились, исполнитель возвращается к месту вызова и продолжает со следующей команды основного алгоритма. Такой порядок нужен, чтобы отдельная часть помогала решать задачу, но не заменяла весь основной план.

Параметры нужны, когда одинаковые действия приходится выполнять с разными данными. Их значения указывают при вызове, и вспомогательный алгоритм использует переданные значения в своих командах. Например, можно передать длину стороны, чтобы построить квадрат нужного размера. Благодаря параметру не приходится создавать отдельное описание для каждого возможного размера.

Один вспомогательный алгоритм можно вызвать несколько раз в разных местах основного. Например, алгоритм рисования окна можно вызвать после построения левой стены дома, а затем — после построения правой. Команды окна записаны один раз, поэтому при необходимости изменить его построение достаточно исправить описание. Если вызовы принимают параметры, им можно передать разные значения, сохраняя общую последовательность действий.

Основной и вспомогательный алгоритмы

ПризнакОсновной алгоритмВспомогательный алгоритм
Роль в решении задачиОрганизует решение задачи в целом.Выполняет отдельную часть задачи.
Как начинается выполнениеЗапускается как план решения задачи.Начинает выполняться после вызова.
Как связан с другими алгоритмамиМожет содержать вызовы вспомогательных алгоритмов.Вызывается из другого алгоритма.
Как завершается выполнениеЗавершается после выполнения своих команд.После завершения управление возвращается к вызвавшему алгоритму.
Как используются параметрыПередаёт значения при вызовах, если они нужны.Использует полученные при вызове значения.

Сравнивайте алгоритмы по их роли и месту в выполнении, а не только по длине записи. Основной алгоритм задаёт общий ход работы, вспомогательный выполняет выделенную часть. Строка о параметрах помогает проверить, где значение задаётся и где применяется.

Разбор задач

Окно в алгоритме рисования дома

Условие. В алгоритме рисования дома повторяются команды построения окна. Нужно выделить эти команды в отдельный вспомогательный алгоритм и указать, где его вызвать. Важно сохранить общий порядок: сначала дом должен быть готов настолько, чтобы можно было определить место окна. Затем повторяющиеся команды заменяются вызовом.

  1. Найдём все одинаковые команды, которые рисуют окно, и перенесём их в отдельное описание с именем «ПостроитьОкно».
  2. В основном алгоритме оставим общий план рисования дома, но не будем повторять в нём команды окна.
  3. В нужном месте основного алгоритма, например после рисования стены, запишем вызов «ПостроитьОкно».

Ответ. Команды построения окна записаны один раз во вспомогательном алгоритме «ПостроитьОкно». Основной алгоритм вызывает его там, где должно появиться окно. Если окон несколько, вызов можно повторить в местах их расположения.

Два одинаковых квадрата

Условие. Нужно составить алгоритм построения двух одинаковых квадратов и отдельный алгоритм построения одного квадрата. Решение удобно разделить: вспомогательная часть отвечает за одну фигуру, основная — за порядок построения двух фигур. Так команды для сторон и поворотов не придётся писать заново.

  1. Опишем вспомогательный алгоритм «Квадрат»: повторить четыре раза команду «нарисовать сторону» и команду поворота на прямой угол.
  2. В основном алгоритме укажем, что сначала нужно вызвать «Квадрат» для первого места.
  3. Затем добавим команду перейти к месту второго квадрата и снова вызовем «Квадрат».

Ответ. Основной алгоритм содержит два вызова алгоритма «Квадрат», а тот содержит команды построения одной фигуры. Если исполнитель начинает второй квадрат не там, где нужно, в основной алгоритм следует добавить переход в нужное место перед вторым вызовом.

Квадраты разного размера

Условие. Нужно нарисовать два квадрата разного размера, используя один алгоритм построения квадрата с параметром длины стороны. Чтобы не создавать две версии одинаковых команд, размер зададим при вызове. Обозначим алгоритм как «Квадрат(сторона)».

  1. В описании «Квадрат(сторона)» зададим построение четырёх сторон, каждая длиной, равной значению параметра «сторона».
  2. В основном алгоритме вызовем «Квадрат(сторона)» со значением 3 для первой фигуры.
  3. Для второй фигуры вызовем тот же алгоритм со значением 5, предварительно указав нужное место для построения.
  4. Проверим каждый вызов: переданное число должно попасть в параметр, который задаёт длину всех сторон.

Ответ. Один алгоритм строит оба квадрата: первый со стороной 3, второй — со стороной 5. Разные значения параметра приводят к разным размерам фигур, а последовательность команд не дублируется.

Типичные ошибки

Ошибка — снова записать команды вспомогательного алгоритма прямо в основной вместо вызова. Так делают, когда привычнее видеть все действия подряд, но тогда теряется смысл выделения повторяющейся части. Проверь себя: если одни и те же команды встречаются в нескольких местах, оставь их в одном описании, а в остальных местах поставь вызовы.

Ошибка — считать, что после вызова основной алгоритм завершается. Это может показаться так, потому что исполнитель временно переходит к другому описанию. На самом деле после выполнения вспомогательного алгоритма основной продолжается со следующей команды. Проверь себя, проследив путь выполнения от вызова обратно к основному плану.

Ошибка — путать описание вспомогательного алгоритма с его вызовом. Описание содержит имя и последовательность команд, а вызов запускает эти команды в нужном месте. Путаница возникает, если не различать место хранения команд и место их выполнения. Проверь запись: команды должны быть внутри описания, а в основном алгоритме — стоять команда вызова.

Ошибка — неверно указать параметр или оставить при повторном вызове прежнее значение, хотя нужно другое. Тогда алгоритм выполняет действие не с теми исходными данными. Это часто случается, когда сосредотачиваются на командах и забывают проверить значения при запуске. Сверь каждый вызов с требуемым результатом и убедись, что значение попадает в нужный параметр.

Связь с другими темами

Чтобы разобраться во вспомогательных алгоритмах, нужно знать, что такое алгоритм и команда, а также понимать порядок выполнения команд. Тогда легче проследить, где выполнение приостанавливается, когда начинается отдельная часть и куда оно возвращается. Если потерять порядок, можно ошибочно решить, что команды выполняются одновременно или в случайной последовательности.

Разбиение задачи на вспомогательные алгоритмы пригодится при составлении сложных программ и повторном использовании готовых частей. Вместо длинной записи можно составить понятные блоки и вызывать их по необходимости. Такой подход помогает изменять и проверять программу: исправление общего алгоритма не требует искать и менять одинаковые команды во многих местах.

Что запомнить

  • Вспомогательный алгоритм выполняет часть общей задачи.
  • У вспомогательного алгоритма есть собственное имя и набор команд.
  • Вызов запускает выполнение вспомогательного алгоритма.
  • После завершения вызванного алгоритма основной продолжается.
  • Параметры позволяют применять алгоритм к разным данным.
  • Повторяющиеся действия удобно оформить один раз и вызывать по необходимости.

Частые вопросы по теме

Зачем выделять часть алгоритма во вспомогательный?

Так большая задача становится понятнее: её можно разделить на небольшие части. Если команды повторяются, их достаточно записать один раз и вызывать по необходимости.

Чем описание вспомогательного алгоритма отличается от его вызова?

Описание задаёт имя алгоритма и команды, которые он выполняет. Вызов — это команда в другом алгоритме, которая запускает его выполнение.

Что происходит после выполнения вспомогательного алгоритма?

Выполнение возвращается в основной алгоритм. Он продолжает работу с команды, следующей за вызовом.

Можно ли вызвать один вспомогательный алгоритм несколько раз?

Да, один алгоритм можно вызвать столько раз, сколько нужно для решения задачи. Если действия должны различаться, при вызовах можно передать разные параметры.

Для чего вспомогательному алгоритму нужны параметры?

Параметр передаёт алгоритму данные, с которыми нужно работать. Благодаря этому один и тот же набор команд, например, может строить квадраты с разной длиной стороны.

Спросить по теме параграфа

Вспомогательный алгоритм

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
6 класс
Учебник
"Информатика", Семёнов А.Л., Рудченко Т.А.