Вычислитель выражений основан на реализации, аналогичной используемой в Excel. Он может разбирать математические выражения с поддержкой наиболее распространённых функций.
Примеры:
4*(24/2-5)+14
cos(Pi/4)*sin(Pi/6)^2
1-1/E^(0.5^2)
min(5;2;9;10;42;35)
Поддерживаются пять типов данных:
| Тип | Описание |
|---|---|
double |
Вещественное число (используется по умолчанию во всех вычислениях) |
int |
Целое число. Используйте функцию int() для явного преобразования |
hexadecimal |
Шестнадцатеричное число. При вычислениях преобразуется в double |
string |
Текстовая строка |
boolean |
Логическое значение (true / false) |
Примечание: Целые и шестнадцатеричные числа при вычислениях всегда преобразуются в
double. Используйтеint()для явного преобразования в целое число.
| Константа | Описание |
|---|---|
Pi |
Число π ≈ 3,14159… |
E |
Число Эйлера e ≈ 2,71828… |
| Функция | Описание | Пример |
|---|---|---|
Abs(x) |
Абсолютное значение (модуль) | Abs(-5) → 5 |
Acos(x) |
Арккосинус | Acos(0) → 1.5708 |
Asin(x) |
Арксинус | Asin(1) → 1.5708 |
Atan(x) |
Арктангенс | Atan(1) → 0.7854 |
Atan2(y;x) |
Арктангенс y/x с учётом знаков для определения квадранта | Atan2(1;1) → 0.7854 |
Ceiling(x) |
Округление вверх до ближайшего целого | Ceiling(4.1) → 5 |
Cos(x) |
Косинус | Cos(0) → 1 |
Cosh(x) |
Гиперболический косинус | Cosh(0) → 1 |
Exp(x) |
Возведение e в степень x | Exp(1) → 2.7183 |
Fact(x) |
Факториал | Fact(5) → 120 |
Floor(x) |
Округление вниз до ближайшего целого | Floor(4.9) → 4 |
Ln(x) |
Натуральный логарифм (основание e) | Ln(E) → 1 |
Log(x) |
Десятичный логарифм (основание 10) | Log(100) → 2 |
Pow(x;y) |
Возведение x в степень y | Pow(2;10) → 1024 |
Round(x) |
Округление до ближайшего целого | Round(4.5) → 5 |
Sign(x) |
Знак числа: −1, 0 или 1 | Sign(-42) → -1 |
Sin(x) |
Синус | Sin(Pi/2) → 1 |
Sinh(x) |
Гиперболический синус | Sinh(1) → 1.1752 |
Sqr(x) |
Квадрат числа (x²) | Sqr(5) → 25 |
Sqrt(x) |
Квадратный корень | Sqrt(25) → 5 |
Trunc(x) |
Отбрасывание дробной части | Trunc(4.9) → 4 |
| Функция | Описание | Пример |
|---|---|---|
Avg(…) |
Среднее арифметическое | Avg(2;4;6) → 4 |
Max(…) |
Максимальное значение | Max(5;2;9) → 9 |
Min(…) |
Минимальное значение | Min(5;2;9) → 2 |
StDev(…) |
Стандартное отклонение | StDev(2;4;6) |
Var(…) |
Дисперсия | Var(2;4;6) |
| Функция | Описание | Пример |
|---|---|---|
And(a;b) |
Логическое И | And(true;false) → false |
Or(a;b) |
Логическое ИЛИ | Or(true;false) → true |
Not(x) |
Логическое НЕ | Not(true) → false |
If(усл;тогда;иначе) |
Условие: возвращает тогда, если усл истинно, иначе иначе |
If(5>6;"да";"нет") → "нет" |
| Функция | Описание | Пример |
|---|---|---|
Format(x;фмт) |
Форматирует значение по строке формата | Format(Pi;"0.00") → "3.14" |
Hex(x) |
Преобразует число в шестнадцатеричную строку | Hex(255) → "FF" |
Left(s;n) |
Возвращает первые n символов строки |
Left("hello";3) → "hel" |
Right(s;n) |
Возвращает последние n символов строки |
Right("hello";3) → "llo" |
Mid(s;начало;n) |
Возвращает n символов начиная с позиции начало |
Mid("hello";2;3) → "ell" |
Len(s) |
Возвращает длину строки | Len("hello") → 5 |
Lower(s) |
Преобразует в нижний регистр | Lower("HELLO") → "hello" |
Upper(s) |
Преобразует в верхний регистр | Upper("hello") → "HELLO" |
Val(s) |
Преобразует строку в число | Val("42") → 42 |
| Функция | Описание |
|---|---|
About |
Выводит информацию о версии |
Clear |
Очищает все пользовательские переменные и функции |
Help |
Выводит справочную информацию |
Оператор & выполняет конкатенацию (склейку) строк:
"Hello " & "world" // → "Hello world"
"Pi = " & Pi // → "Pi = 3.14159265358979"
Len("hello world") // → 11
true != false // → true
5 > 6 ? "hello" : "world" // → "world"
If(5 > 6;"hello";"world") // → "world"
Оператор := используется для объявления переменных и функций:
x := 42
f(x) := x^2
f(x) := sin(x) / cos(x) // объявление функций с использованием встроенных функций
Функции могут вызывать сами себя рекурсивно. Параметры функции являются локальными, остальные переменные разрешаются из глобальной области видимости.
fac(n) := (n = 0) ? 1 : fac(n-1)*n
// fac вызывает саму себя с другими параметрами
f(x) := x * Y
// x — в области видимости функции, Y — в глобальной области
От высшего к низшему:
| Приоритет | Оператор | Описание |
|---|---|---|
| 1 | ( ), f(x) |
Группировка, вызовы функций |
| 2 | ! ~ - + |
Унарные операторы |
| 3 | ^ |
Возведение в степень (правило Excel: a^b^c → (a^b)^c) |
| 4 | * / % |
Умножение, деление, остаток от деления |
| 5 | + - |
Сложение, вычитание |
| 6 | & |
Конкатенация строк |
| 7 | < <= > >= |
Операторы сравнения |
| 8 | = != <> |
Равенство и неравенство |
| 9 | && |
Логическое И |
| 10 | \|\| |
Логическое ИЛИ |
| 11 | ?: |
Тернарное условие |
| 12 | := |
Присваивание |