Практика программирования (Бейсик, Си, Паскаль)



Оформление и вызов программных единиц в системе QBasic - часть 2


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

Внешняя функция начинается с заголовка:

FUNCTION имя_функции[(аргументы)][STATIC]

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

STATIC Q1 AS INTEGER, F AS DOUBLE

В теле функции, состоящем из обычных операторов, обязательно должно присутствовать присвоение:

имя_функции = выражение

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

Признаком конца описания внешней функции является оператор END FUNCTION. Для досрочного выхода из подпрограммы вычисления функции используется оператор EXIT FUNCTION.

Тип внутренней или внешней функции определяется специальным символом, завершающим имя функции (% — короткий целый, & — длинный целый, ! — короткий вещественный, # — длинный вещественный, $ -строковый). Если имя функции завершается любым другим символом, то по умолчанию функции присваивается короткий вещественный тип.

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

Внутренняя подпрограмма, входящая в текст головной программы, обязательно должна начинаться с метки, на которую передается управление оператором GOSUB. Работа внутренней подпрограммы завершается оператором RETURN, после чего продолжается работа основной программы с оператора, следующего за GOSUB. В отличие от обычных подпрограмм у внутренней подпрограммы отсутствуют параметры, и она может оперировать только с переменными основной программы. Логически внутренние подпрограммы повторяют структуру подпрограмм в машинных кодах. К внутренней подпрограмме может обратиться только ее владелец.

Внешняя подпрограмма начинается с заголовка:

SUB имя-подпрограммы[(параметры)][STATIC]

Тело внешней подпрофаммы завершается оператором END SUB. Для досрочного прекращения работы программы используется оператор EXIT SUB.

К внешней подпрофамме можно обратиться из любой профаммной единицы двумя способами, особой разницы между которыми нет:

имя_подпрограммы [фактические параметры]

ИЛИ

CALL имя_подпрограммы[(фактические параметры)]




Содержание  Назад  Вперед