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

§ 20. Составление программ. Использование подпрограмм (вспомогательных алгоритмов)

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", Н. П. Макарова А. И. Лапо Е. Н. Войтехович

Объяснение темы В оглавлении: § 20. Составление программ. Использование подпрограмм (вспомогательных алгоритмов)

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Разбор задач

Повторный вывод сообщения

Условие: программе нужно несколько раз вывести одно и то же короткое сообщение. Следует определить, какие команды вынести в подпрограмму и где её вызывать. Сначала найдём часть, которая повторяется без изменений: это команда вывода сообщения. Если записать её заново при каждом повторе, программа станет длиннее.

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

Ответ: команду вывода сообщения оформляем как одну подпрограмму, а в основном алгоритме вызываем её нужное число раз. При выполнении каждого вызова текст появится на экране ещё раз, после чего программа продолжит работу с последующей командой.

Рисование фигуры с четырьмя одинаковыми сторонами

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

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

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

Фигуры одного вида разного размера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запускается ли подпрограмма сразу после её описания?

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

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

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

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

Да, одну и ту же подпрограмму можно вызвать в разных местах программы. Это удобно, когда нужно повторить одинаковое действие.

Для чего подпрограмме нужны параметры?

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

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

§ 20. Составление программ. Использование подпрограмм (вспомогательных алгоритмов)

Учебник

Оглавление →
Предмет
Информатика
Класс
6 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", Н. П. Макарова А. И. Лапо Е. Н. Войтехович