Функции и процедуры, определяемые пользователем (собственные)

Стандартная функция - группа операторов в программе, объединенных именем функции.

С помощью аргумента функции в инициируемую именем функции группу операторов, передаются конкретные данные. Результат возвращается в основную программу.

Процедуры (подпрограммы и функции), написанные пользователем, называются собственными.

Различают собственные функции и подпрограммы.

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

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

Обмен данными между головным модулем и процедурой осуществляется 2 способами:

Использование глобального объявления типов данных

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

DIM SHARED MR%

DIM SHARED F!(1 TO 5)

Использование механизма формально-фактических параметров.

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

Оба способа обмена могут быть использованы в одной процедуре.

Функция пользователя FUNCTION

Состоит из 1 или нескольких операторов, но возвращает только одно значение.

Для вызова собственной функции нужно указать ее имя.

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

Формальные параметры записывают через запятую в круглых скобках. SR$(A,T,X )

Локальные параметры касаются тех данных, которые используются только в процедуре (функции).

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

Объявление функции пользователя

FUNCTION имя функции (форм. параметр [,ф.п....]) [STATIC]

Оператор 1

...

[Оператор n]

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

END FUNCTION

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

Для запуска процедуры FUNCTION в головном модуле должен быть оператор, который содержит обращение к функции (это операторы присваивания или вывода)

Процедура – функция FUNCTION может использоваться не только в том модуле, где она определена. Чтобы сделать доступным использование функции в другом модуле, надо включить в него оператор DECLARE.

DECLARE FUNCTION имя [перемен. [( ) ] ] [, перемен. [( )] ]...

Пример

REM извлечение корня произвольной степени

DIM SHARED ARG!, ST%

DO

INPUT”ввести аргумент”; ARG!

INPUT”ввести степень корня”; ST%

LOOP WHILE ARG! < 0

PRINT KOR! (ARG!, ST%)

END

FUNCTION KOR! (ARG!, ST%)

KOR! = ARG! ^ (1 / ST%)

END FUNCTION

Пример

REM демонстрация STATIC

DIM SHARED X

X = 2

PRINT “Z = “; Z(X)

PRINT “Z = “; Z(X)

END

 
  Функции и процедуры, определяемые пользователем (собственные) - student2.ru

FUNCTION Z (X) FUNCTION Z (X) STATIC

DIM C DIM C

C = C + 2 : Z = C C = C + 2 : Z = C

END FUNCTION END FUNCTION

 
  Функции и процедуры, определяемые пользователем (собственные) - student2.ru

Результат Z = 2 Результат Z = 2

Z = 2 Z = 4

Место процедуры FUNCTION - после текста основного модуля.

Ввод программы, в тексте которой находится обращение к функции, выполняется в 2 этапа:

Ввод текста головного модуля. После ввода последней строки необходимо ввести часть заголовка процедуры, а именно FUNCTION <имя> и нажать ENTER.

На экране появятся 3 строки

FUNCTION имя

-

END FUNCTION

Курсор в 1-й позиции 2-й строки

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

После ввода последнего оператора функции (оператора присваивания) необходимо нажать клавишу F2.

На экране в поле диалога появляются имена головного модуля (например, UNTITLED) и функции.

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

Команда SAVE записывает (сохраняет) программу на диск.

Перед записью в тексте головной программы появляется строка DECLARE FUNCTION имя функции ( )

Наши рекомендации