DARK BASIC
ВСТРОЕННЫЕ ФУНКЦИИ И ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ
ВСТРОЕННЫЕ ФУНКЦИИ
Функции можно сравнить с командами, возвращающими значение. В DarkBASIC используются арифметические и символьные функции, функции, зависящие от команды, а также функции пользователя. Всем им присущи общие черты, которые помогают узнать их в тексте программы и определить, для чего они предназначены.
Простой арифметической функцией является команда ABS. Она принимает отрицательное значение и превращает его в положительное:
Результатом этого выражения будет 100.
Та же функция может применяться в вычислениях:
A = B + ABS(-100)
Или использоваться с переменной:
A = ABS( B )
Либо использоваться как часть выражения отношения:
IF ABS( A ) > 180 THEN PRINT "правильно"
Вы уже знаете, как применять переменные вместо обычных чисел и символьных строк. Точно таким же образом можно использовать и функции. Как видно из примера, функции могут принимать данные, но это не обязательно. Некоторые из них просто возвращают значение:
DO
PRINT TIMER()
LOOP
Обратите внимание, что даже если не требуется указывать параметр, скобки после имени функции обязательны. Скобки сообщают DarkBASIC, что это функция, и позволяют отличить ее от переменной. В отличие от имен переменных и массивов, функции требуется символ доллара ($) только в том случае, если она возвращает символьную строку. Если функция возвращает вещественное значение, символ решетки (#) ставить необязательно.
ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ
Умение писать функции -- неоценимо. Без них опытные программисты не могли бы создавать эффективные программы. Хотя в DarkBASIC для совместимости и в целях обучения оставлены GOSUB и подпрограммы, мы надеемся, что вы в скором времени научитесь использовать функции.
Функции -- это блоки операторов, которые, как правило, выполняют часто применяемые рекурсивные и обособленные задачи. Переменные и массивы, используемые в функциях, отделены от остальной части программы. Если в функции встречается имя переменной FRED, оно не будет влиять ни на одноименную переменную, объявленную в основной программе, ни на имя переменной FRED, если оно встретится в другой функции. Это несколько усложняет процесс кодирования, но заставляет подумать, как разбить программу на изолированные друг от друга задачи, что само по себе крайне важно.
Функции можно передать до 255 параметров и определить, будет ли она возвращать значение. Функции, не возвращающие значение, могут использоваться в программе как обычные команды.
Объявить функцию очень легко. Введите команду FUNCTION, дайте функции имя, в скобках укажите список параметров и она почти готова. Затем введите нужные операторы и с помощью команды ENDFUNCTION объявите конец функции. Ниже приводится пример объявления функции, возвращающей половину переданного ей значения.
FUNCTION halfvalue(value)
value=value/2
ENDFUNCTION value
Следующее объявление создает функцию, которую удобнее использовать вместо оператора PRINT:
REM Начало программы
BetterPrint(10, 10, "Здравствуй, мир")
END
FUNCTION BetterPrint(x, y, t$)
SET CURSOR x,y
PRINT t$
ENDFUNCTION
Щелкните здесь, чтобы перейти в
следующий раздел
.