Выражения: Функции

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

По числу аргументов функции разбиваются на 4 группы:

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

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

Спецификации приводятся в виде

имя_функции (типы_входных_аргументов): тип_значения
Необязательные аргументы заключаются в квадратные скобки [ ]. Аргументы, которые могут повторяться более одного раза, заключаются в фигурные скобки { }. Слово 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, если все равенства не верны.