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

§ 42. Применение процедур

"Информатика. (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 42. Применение процедур

Кратко о теме

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

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

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

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

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

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

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

Аргумент — конкретное значение или переменная, указываемые при вызове процедуры вместо параметра. Например, если параметр обозначает имя пользователя, аргументом при одном вызове будет «Аня», а при другом — «Илья». Так процедура получает данные для конкретного запуска.

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

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

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

Если процедура должна работать с данными, в её описании задают параметры, например имя пользователя. При вызове указывают аргумент: конкретное имя, которое нужно использовать именно сейчас. Например, вызовы «Приветствие(Аня)» и «Приветствие(Илья)» передают процедуре разные данные, хотя её команды остаются теми же. Значение аргумента связывается с соответствующим параметром, поэтому внутри процедуры можно выполнить похожую работу для каждого пользователя.

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

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

Как устроено применение процедуры

ЭлементГде находитсяНазначениеЧто указывается
Описание процедурыВ программеЗадаёт действия процедурыИмя, параметры и команды
Имя процедурыВ описании и вызовеПозволяет обратиться к нужным действиямНазвание, выбранное программистом
ПараметрыВ описании процедурыОбозначают данные, нужные процедуреИмена величин
Вызов процедурыВ основной программеЗапускает команды процедурыИмя процедуры и, если нужно, аргументы
АргументыПри вызове процедурыПередают данные параметрамКонкретные значения или переменные
Возврат к основной программеПосле команд процедурыПродолжает выполнение общего алгоритмаСледующая команда после вызова

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

Разбор задач

1. Повторяющееся сообщение

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

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

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

2. Приветствие для разных пользователей

Условие. Одна процедура должна выводить приветствие для разных пользователей. Значит, в тексте приветствия меняется имя, а само действие остаётся похожим. Нужно показать данные для двух вызовов.

  1. Опишем процедуру «Приветствие(имя)», где «имя» — параметр для данных о пользователе.
  2. Для первого запуска укажем вызов «Приветствие(Аня)»: аргумент «Аня» передастся параметру «имя».
  3. Для второго запуска укажем «Приветствие(Илья)»: теперь тот же параметр получит аргумент «Илья».

Ответ. В процедуру передаются аргументы «Аня» и «Илья» при двух разных вызовах. Процедура выполняет одно и то же действие, но подставляет данные соответствующего пользователя.

3. Периметр прямоугольника

Условие. Процедура вычисляет периметр прямоугольника по двум сторонам. Используем формулу P = 2 × (a + b), где a и b — длины сторон. Нужно выбрать параметры и проследить два вызова для разных прямоугольников.

  1. Зададим параметры «a» и «b», а внутри процедуры вычислим P = 2 × (a + b).
  2. Для прямоугольника со сторонами 3 и 5 вызовем процедуру с аргументами 3 и 5. Параметры получат значения a = 3 и b = 5, поэтому P = 2 × (3 + 5) = 16.
  3. Для прямоугольника со сторонами 4 и 7 выполним второй вызов с аргументами 4 и 7. Теперь параметры равны a = 4 и b = 7, поэтому P = 2 × (4 + 7) = 22.

Ответ. Нужны два параметра — a и b, а аргументы при вызовах: сначала 3 и 5, затем 4 и 7. После каждого вычисления управление возвращается к команде основной программы, следующей за вызовом.

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

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

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

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

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

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

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

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

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

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

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

Зачем выделять команды в процедуру, если их можно просто записать в программе?

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

Чем описание процедуры отличается от её вызова?

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

Как понять, что нужно передать процедуре при вызове?

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

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

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

Что происходит с выполнением программы после завершения процедуры?

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

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

§ 42. Применение процедур

Учебник

Оглавление →
Предмет
Информатика
Класс
7 класс
Учебник
"Информатика. (в 2 частях)", Поляков К.Ю., Еремин Е.А.