Калькулятор

Как высчитать математическое выражение с использованием переменных и математических функций

В боте можно производить любые арифметические вычисления. Делается это в поле "Назначение переменных при переходе"

Как использовать в конструкторе.

Посчитать значение можно в поле: "Назначение переменных при переходе" (Рисунок 1)

Рисунок 1
Рисунок 2

Переменные можно записывать просто названием или через #{}. Все переменные автоматически будут приводится к числам с плавающей запятой.

Важно! Логические условия с переменными необходимо писать в поле переменная для сравнения! Например, на рисунке ниже переход по стрелке осуществиться, если переменная НОМЕРТЕЛЕФОНА не заполнена:

Рисунок 2

Константы:

"E": число e

"PI": число PI

Поддерживаемые операторы:

"+": сложение

"-"': вычитание

"*" умножение

"/": деление

'"%'": остаток от деления

"^" "**": возведение в степень

"==" "!=" ">" "<" ">=" "<=": операторы сравнения

"and" "AND" "&&": логическое И

"or" "OR" "||": логическое ИЛИ

Поддерживаемые функции:

"random": случайное число. 2 параметра: нижняя граница и верхняя. Пример: random(-10,10)

"fac": факториал. 1 параметр: число

"log": логарифм. 2 параметра: число и база(по умолчанию e).

"min": минимальное число. неограниченно параметров. каждый параметр число. Пример: min(4, 2, 9, 6)

"max": максимальное число. неограниченно параметров. каждый параметр число. Пример: max(4, 2, 9, 6)

"int": приведение к целому числу. При этом дробная часть просто отсекается. Пример: int(1.8)

"round": математическое округление числа. Пример: round(1.8). Разница между "int" и "round" показана на Рисунке 3:

Рисунок 3

"float": приведение к числу с плавающей запятой.

"pyt": эквивалент корня из (a a + b b)

"pow": возведение числа в степень. 2 параметра: число и степень. Пример: pow(5, 2)

"sin" "cos" "tan" "asin" "acos" "atan" "atan2": тригонометрические функции

"len" вернет количество символов в строке. Пример: len("как прекрасен этот мир!"). Результат работы представлен на Рисунке 4:

Рисунок 4

"concat": конкатинация (сложение) строк, преданных в параметр.

"sqrt": квадратный корень. 1 параметр: число

"floor": целая часть от числа

"ceil": округление к большему

"abs": абсолютное значение(приведение к положительному числу)

"exp": возведение е в степень параметра

"normalizePhone": приводит номер телефона к стандартному виду. Убирает все кроме цифр и, если телефон начинается с 8, меняет ее на 7. Пример: normalizePhone("+7978-999-99-99"). Результат работы представлен на Рисунке 5:

Рисунок 5

"replace": заменить вхождения строки в строку на другую строку. Принимает 4 параметра: строка в которой будет происходить замена, что заменить, на что заменить, сколько раз заменить(не обязательный параметр). Пример: replace("wwww2222ww", "w", "e", 1). Результат: ewww2222ww. Пример использования на рисунках ниже:

"if": тернарный оператор. 3 параметра: условие, значение если условие верно, значение если условие ложно

Пример: ДНИМОЛЧАНИЯ_2 = if(ДНИМОЛЧАНИЯ_2 == 1, 1, 0). В таком случае, если существует переменная ДНИМОЛЧАНИЯ_2 со значением 1, то ее значение так и останется 1, а если она не существует, то будет 0. Удобно использовать перед математическими операциями, чтобы подстраховаться от пустых значений переменных.

Также, можно использовать вложенные if конструкции. Это пригодится, если хотите научить бота подсчитывать сумму заказа, когда стоимость единицы товара зависит от его количества.

Например: Сумма_Заказа = round(if(Количество >=100, if(Количество >=200, if(Количество >=300, if(Количество >=400, if(Количество >=500, if(Количество >=1000, if(Количество >=2000, if(Количество >=3000, if(Количество >=5000, 25*Количество, 30*Количество), 35*Количество), 40*Количество), 45*Количество), 50*Количество), 55*Количество), 60*Количество), 65*Количество), "Не могу посчитать... Вы ошиблись где-то при оформлении заказа. Попробуйте еще раз с самого начала.") 100) / 10

Максимальная длина выражения: 1000 символов

Результат работы такой формулы представлен на Рисунке 6, а пример заполнения полей - на Рисунке 7:

Рисунок 6
Рисунок 7

Работа с буквами колонок

Если вам надо перевести букву колонки в цифру, можете воспользоваться функцией калькулятора c2n, если нужно перевести цифру в букву, то используйте n2c. Также вы можете прибавлять к буквам колонок смещение через функцию addCols, которая принимает первым параметром строку с буквой колонки, а второй смещение. Передайте отрицательное смещение, чтобы идти влево.

Пример:

Результат работы: