Функции в общем случае могут иметь произвольное число аргументов,
которые записываются после имени функции в скобках через запятую.
По числу аргументов функции разбиваются на 4 группы:
-
Функции с фиксированным числом аргументов (sqrt, sin, exp, mod).
-
Функции с необязательными аргументами (log, rand, setbit).
-
Функции с произвольным числом аргументов (min, if, steps, xor).
-
Функции без аргументов (now(), rand()).
Для функций без аргументов пустые скобки обязательны.
Ниже приводится полный перечень допустимых функций с их спецификациями
и описаниями.
Спецификации указывают типы всех аргументов и возвращаемого значения.
Спецификации приводятся в виде
имя_функции (типы_входных_аргументов): тип_значения
Необязательные аргументы заключаются в квадратные скобки [ ].
Аргументы, которые могут повторяться более одного раза,
заключаются в фигурные скобки { }.
Слово any означает, что аргумент может иметь произвольный тип.
Выражения: Функции преобразования типов
Bool (any): bool
преобразование any в логический тип
Int (any): int
преобразование any в целый тип
Real (any): real
преобразование any в вещественный тип
String (any): string
преобразование any в строковой тип
Datetime (any): datetime
преобразование any в дату и время
Выражения: Функции проверки значений
IsEmpty (any): bool
TRUE если any пустое или ошибочное
IsNumber (any): bool
TRUE если any приводимо к типу real
IsTime (any): bool
TRUE если any приводимо к datetime
Выражения: Числовые функции с фиксированным числом
аргументов
Abs (real): real
абсолютная величина (модуль) числа real
Sign (real): int
сигнум числа real, принимает значения:
-1 при real<0;
0 при real=0;
1 при real>0
Max ({real}): real
максимум чисел
Min ({real}): real
минимум чисел
Sqrt (real): real
квадратный корень числа real
Sin (real): real
синус числа real
Cos (real): real
косинус числа real
Tg (real): real
тангенс числа real
Arcsin (real): real
арксинус числа real
Arccos (real): real
арккосинус числа real
Arctg (real): real
арктангенс числа real
Sh (real): real
гиперболический синус числа real
Ch (real): real
гиперболический косинус числа real
Th (real): real
гиперболический тангенс числа real
Exp (real): real
экспонента числа real
Log (real, [real2]): real
логарифм real1 по основанию real2, либо натуральный, если real2 опущен
FNorm (real, [real1], [real2]): real
функция нормального распределения с МО=real1 и СКО=real2.
Если real2 опущено, полагается МО=0, СКО= real1.
Если real1 и real2 опущены, полагается МО=0, СКО=1.
rand ([real1], [real2]): real
случайное число из диапазона [real1,real2), [0,real1) или [0,1)
round (real): real
округление до ближайшего целого
upround (real): real
ближайшее большее или равное целое (потолок)
dnround (real): real
ближайшее меньшее или равное целое (пол)
Xor (bool, {bool}): bool
логическое исключающее ИЛИ
Выражения: Битовые функции для целых чисел
Bit (int1, int2): bool
int2-ый бит в целом числе int1
SetBit (int1, [int2], [bool]): int
установить int1-ый бит числа int2 (0 если опущен) в bool (1 если опущен)
NotBit (int): int
побитовое отрицание
OrBit (int, {int}): int
побитовое ИЛИ
AndBit (int, {int}): int
побитовое И
XorBit (int, {int}): int
побитовое исключающее ИЛИ
Выражения: Функции для работы с датой и временем
now ( ): datetime
текущая дата-время
time (any): datetime
преобразование any в datetime с выделением времени
date (any): datetime
преобразование any в datetime с выделением даты
year (datetime): int
выделение года из datetime
month (datetime): int
номер месяца в году, нумерация с 1
day (datetime): int
номер для в месяце, нумерация с 1
hours (datetime): int
выделение часов с полуночи из datetime
minutes (datetime): int
выделение минут из datetime
seconds (datetime): int
выделение секунд из datetime
WeekDay (datetime): int
номер дня недели, ВС=0, ПН=1, ..., СБ=6
WeekDayRus (datetime): int
номер дня недели, ПН=1, ..., СБ=6, ВС=7
YearDay (datetime): int
номер дня в году
Выражения: Функции для работы со строками
len (string): int
длина строки
pos (string1, string2): string
позиция строки string2 в строке string1, или (-1) если не найдена;
нумерация символов строки начинается с 0
left (string, int): string
головная часть строки длиной int
right (string, int): string
хвост строки длиной int
mid (string, int1, int2): string
средняя часть строки начиная с позиции int1 длиной int2, нумерация с 0
format (string, any): string
форматный вывод any согласно спецификации, заданной в string
Выражения: Условные и пороговые функции
if ({bool1, any1}, [anyLast]): any
условное выражение, возвращает:
any1, если bool1=TRUE,
any2, если bool2=TRUE,
... и так далее ... ,
anyLast, если все нечётные аргументы равны FALSE.
steps (real1, {real}): int
ступенчатая функция, возвращает:
0, если real1<real2,
1, если real2<=real1<real3,
2, если real3<=real1<real4,
... и так далее ...
switch (any, {any1, any2} [anyLast]): any
переключатель значений, возвращает:
any2, если any=any1,
any4, если any=any3,
... и так далее...
anyLast, если все равенства не верны.