Функции

Настало время поговорить о математических функциях Visual FoxPro 9. Ихнасчитывается четыре десятка. Рассмотрим основные функции, разбитые погруппам.

Тригонометрические функции Visual FoxPro, как правило, имеют только одинпараметр (аргумент). К таким функциям относятся:

>    SIN (<аргумент>) - синус;

>    COS (<аргумент>) - косинус;

>    ASIN (<аргумент>) - арксинус;

>    ACOS (<аргумент>) - арккосинус;

>    TAN(<аргумент>) - тангенс;

>    ATAN(<аргумент;-) - арктангенс.

>    функция PI () возвращает значение числа Пи.

>    функция DTOR (<аргумент>) конвертирует градусы в радианы. <Аргумент>указывается в градусах.

Функции округления и взятия по модулю в Visual FoxPro 9 присутствуют следующие:

>    ABS (<аргумент>) - абсолютное значение числа (ABS(-10.7) = 10.7);

>    CEILING (<аргумент>) - ближайшее целое число, большее, чем аргумент,если он дробный (CEILING (10 . 7 ) =11);

>    FLOOR (<аргумент>) - ближайшее целое число, меньшее, чем аргумент,если он дробный (FLOOR(10. 7) =10);

>    INT (<аргумент>) - целая часть аргумента (INT (10.7) = 10);

>    ROUND(<аргумект>, <количество_знаков>) - округляет аргумент до указанного количества знаков после запятой (ROUND (75.235, 2) = 75.24).Допускается отрицательное значение количества знаков. Это приводитк округлению до десятков, сотен и так далее (ROUND (75.235, -1) = 80).

Функция вычисления экспоненты - ЕХР (<аргумент>).

Функции вычисления логарифмов: натуральный логарифм (по основанию е) -LOG(<аргумент>), десятичный логарифм - LOG10 (<аргумент>).

При помощи функции SQRT (<аргумент>) можно вычислить квадратный корень числа.

В Visual FoxPro 9 есть целая группа функций для работы с двоичными числами,представленными классическим типом Numeric и введенными в версии 9 длялучшей совместимости с Microsoft SQL Server двоичными типами Varbinary иBlob. Рассмотрим эти функции. Все их названия начинаются на BIT- , а далее вназвании следует производимое действие.

BITAND(<аргумент1>, <аргумент2>, . . . ) - возвращает результат побитовойоперации AND над аргументами. Аргументов может быть не более 26. И все аргументы должны быть одного типа. Варианты побитовой операции AND представлены в табл. 3.3.

Сложение происходит так: первый бит первого аргумента складывается спервым битом второго аргумента, второй бит первого аргумента складываетсясо вторым битом второго аргумента и так далее. Получается, что, если мывозьмем число 5 (в двоичном виде 0101) и побитно сложим с числом 3 (в двоичном виде 0011), получится число 1 (в двоичном виде 0001).

BITOR(<аргумент1>, <аргумент2>, ... ) - возвращает результат побитовойоперации OR над указанными аргументами. Аргументов может быть не более 26.И все аргументы должны быть одного типа. Варианты побитовой операции ORпредставлены в табл. 3.4.

BITXOR(<аргумент1>, <аргумент2>, ... ) - возвращает результат побитовойоперации исключающего OR над указанными аргументами. Аргументов можетбыть не более 26. И все аргументы должны быть одного типа. Варианты побитовой операции OR представлены в табл. 3.5.

BITCLEAR (<аргумент>, <позиция>) - в указанной позиции двоичного аргумента проставляет 0. Значение позиции может изменяться от 0 (крайняя справа цифра) до 31 (крайняя слева цифра).

BITSET (<аргумент>, <позиция>) - в указанной позиции двоичного аргумента проставляет 1. Значение позиции может изменяться от 0 (крайняя справацифра) до 31 (крайняя слева цифра).

BITLSHIFT (<аргумент>, <количество>) - сдвигает двоичное число влево науказанное количество разрядов (BITLSHIFT (5 ,1) =10, 5 в двоичном виде 0101,а 10 в двоичном виде 1010).

BITRSHIFT(<apryMeHT>, <количество>) - сдвигает двоичное число вправона указанное количество разрядов (BITRSHIFT (5 ,1) = 2, 5 в двоичном виде0101, а 2 в двоичном виде 0010).

BITTEST (<аргумент>, <позиция>) - проверяет, стоит ли в указанной позиции двоичного аргумента 1. Значение позиции может изменяться от 0 (крайняя справа цифра) до 31 (крайняя слева цифра). Если проверка показывает, чтов указанной позиции стоит 1, то функция возвращает значение True (.Т.), еслистоит 0, то возвращается False (.F.).

Мы рассмотрели основные функции Visual FoxPro 9 для работы с числами.Можно использовать любые комбинации этих функций в своих собственныхфункциях и процедурах. Поэкспериментируйте с функциями, запуская их вокне Command. Можно ставить перед функцией команду ?. Например:

Тогда результат выполнения функции будет выведен в рабочую область основного окна Visual FoxPro 9. Можно воспользоваться командой MESSAOEROX.Например:

Тогда результат испытываемой функции (ROUND (75 .235 , 2)) будет выведен в окно сообщений. Закрывается окно сообщений щелчком мышью покнопке ОК.