Подпрограммы пользователя
Когда некоторая совокупность действий должна выполняться в нескольких различных местах программы, обычно нежелательно каждый раз повторять группу операторов, реализующих эти действия. Чтобы избежать повторений, указанную группу операторов можно записать в программе один раз и обращаться к ней, когда в этом возникает необходимость. Обособленную группу операторов, которую можно выполнять многократно, обращаясь к ней из различных мест программы, называют подпрограммой. Подпрограмма – это самостоятельная программная единица, которая находится под управлением основной программы.
Подпрограммы могут быть внутренними, то есть подпрограмма привязана к основной программе, и внешними, которые располагаются на каком-либо носителе информации.
Здесь будут рассматриваться внутренние подпрограммы.
Для подпрограмм характерными являются описание и обращение.
Описание внутренней подпрограммы может начинаться с любой строки, но нагляднее (особенно при большом количестве подпрограмм) с комментария, который отражает функциональную сущность подпрограммы. Далее следуют операторы для выполнения подпрограммы. Подпрограмма должна обязательно заканчиваться оператором, который осуществляет возврат в основную программу. Для этого используется оператор со следующей синтаксической структурой:
нс RETURN, где
Return – ключевое слово “вернуться”.
Структура описания подпрограммы :
нс <комментарий>
… операторы
… подпрограммы
RETURN,
Количество операторов RETURN может быть любым.
В QB и TB можно использовать номер строки или метку.
Обращение к подпрограмме осуществляется в основной программе по формату:
GOSUB нс (или метки),
где GOSUB – ключевое слово “идти к”; номер строки или метка указывают, к какой подпрограмме обращается основная программа. Для подпрограмм желательно использовать большие номера, например, начиная с 1000. Подпрограммы располагаются в конце основной программы и должны обязательно отделяться от основной программы оператором STOP для GB, или оператором END для QB и TB.
Правило выполнения подпрограммы:
Когда в основной программе встречается обращение, основная программа передаёт управление подпрограмме. После выполнения подпрограммы управление передаётся снова в основную программу к оператору, следующему за GOSUB, а обращение замещается вычисленным значением или остаётся в подпрограмме, так как область памяти для основной программы и подпрограмм одна и та же, а поэтому все вычисленные в подпрограмме значения доступны для основной программы. Однако при повторном обращении к той же подпрограмме вычисленные значения потеряются. В таком случае после 1-го обращения к подпрограмме вычисленные значения должны сохраняться в основной программе, присвоив их каким-либо переменным.
Подпрограммы могут содержать обращения к другим подпрограммам. В этом случае говорят о вложенности подпрограммы, которая несколько отличается от вложенности циклов или вложенности скобок в выражении. В случае подпрограмм вкладываются не сами подпрограммы, а вызывающие их операторы GOSUB.
Вид вложенности, когда подпрограмма обращается к самой себе, называется рекурсией. Понятие рекурсии охватывает также ситуацию, при которой первая подпрограмма вызывает вторую, а та, в свою очередь, вызывает первую.
Задание 1.
Составьте программу вычисления выражений, приведенных в табл.9.1, с использованием нестандартной функции.
Задание 2.
Составьте программу вычисления этого же выражения с использованием подпрограммы.
Таблица 9.1. Список заданий
Вариант | Вычислить | Данные |
Дата добавления: 2021-12-14; просмотров: 328;