Собственные функции

В предшествующих главах Вы познакомились с некоторыми встроенными функциями QBASIC (например, MID$ или SQR). Теперь рассмотрим составление собственных функций.

Вернемся к математической функции INT. INT — имя функции. Этим именем определяются некоторые программные действия, невидимые программисту, и которые инициализируются автоматически с появлением в программе имени функции. Иначе говоря, функцию можно понимать как группу операторов в программе, объединенных под именем функции. С помощью заключенного в круглые скобки аргумента (сравни INT (3.34)) в подпрограмму, инициируемую именем функции, передаются конкретные данные. Над этими данными производятся некоторые преобразования, и результат, как правило, возвращается в основную программу.

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

 

Пример:
STRICH$()-Возвращаемое значение - строка
RUNDEN%()-Возвращаемое значение - число типa INTEGER
WURZEL! ()-Возвращаемое значение — число типа SINGLE

В QBASIC пользовательские функции объявляются при вводе ключевого слова FUNCTION и следующего за ним имени функции. В этом случае редактор автоматически генерирует новое программное окно, в котором нет ничего, кроме операторов, ограничивающих тело функции:

FUNCTION Имя_функции END FUNCTION

В пространство между ограничивающими ключевыми словами вносят операции QBASIC,
обеспечивающие выполнение необходимых действий. Чтобы вернуться в главную программу, надо нажать клавишу F2. На экране появляется поле списков со всеми BIBL.BAS и сохраните его под новым именем ("Save as..."). Если Вы будете составлять свою программу в этом файле, из нее можно вызывать все процедуры и функции файла BIBL.BAS.

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

'Главная программа для функции извлечения корня
DIM argument!, wurz%
CLS
DO
INPUT "Ввести аргумент: ", argument!
INPUT "Ввести степень корня: ", wurz%
LOOP WHILE argument! < 0
PRINT
PRINT wurzel!(argument!, wurz%)
'Конец главной программы
Составим шаблон функции:
FUNCTION wurzel! (argument!, wurz%) END FUNCTION

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

FUNCTION wurzel! (argument!, wurz%)
wurzell = argument! ^ (1 / wurz%)
END FUNCTION

Рассмотрим синтаксис определения функции в программе более детально:
FUNCTION Имя_функции (Параметр_1 [, Параметр_2]...) [STATIC]
[Оператор]...
Имя_функции = Выражение
END FUNCTION

 

Имя_функции - Имя функции; последний символ обязательно определяет тип возвращаемого значения (%,&,!, #или $).

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

Смысл опции STATIC разъясним на небольшом примере. Составим главную программу для вызова функции zlen:

'Главная программа
PRINT "Длина 'test' "; zlen%("test")
PRINT "Длина 'test' "; zlen%("test")

 

Функцию zlen объявим следующим образом:

FUNCTION zlen%(text$)
DIMi%
i%-i%+LEN(text$)
zlen%-i% END FUNCTION

 

После запуска программы дважды получим на экране сообщение "Длина 'тест' 4". Изменим заголовок функции:
FUNCTION zlen% (text$) STATIC

 

После первого запуска программы получаем сначала значение длины 4, затем 8. Так как при объявлении функции используется ключевое слово STATIC, то значение локальной переменной i% сохраняется после окончания выполнения функции. Поэтому при последующих вызовах к значению переменной i% добавляется число 4, и при втором обращении к функции возвращаемое значение уже не 4, а 8.

 

 








Дата добавления: 2015-08-08; просмотров: 639;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.