# Математичні функції

## Математична функція

abs() | ceil() | customizable\_round\_multiply() | customizable\_round\_division() | exp() | fac() | floor() | int() | int\_to\_string() | is\_float() | is\_int() | log() | max() | md5() | min() | pow() | random() | round() | sha1() | sha256() | sqrt() | sin() | cos() | tan() | asin() | acos() | atan() | atan2()

<details>

<summary>Опис</summary>

**abs(num)** - абсолютне значення (перетворює число на його додатний еквівалент).\
Приклад: abs(-256) повертає 256

**ceil(num)** - округлює число вгору до найближчого цілого.\
Приклад: ceil(25.66) повертає 26

**customizable\_round\_division(a,b,count)** - ділить два числа та округлює результат до вказаної кількості знаків після коми (count), де a — ділене, а b — дільник.

**customizable\_round\_multiply(a,b,count)** - множить два числа та округлює результат до вказаної кількості знаків після коми (count), де a і b — множники.

**exp(num)** - піднесення числа Ейлера&#x20;e до степеня параметра.\
Приклад: exp(2) повертає приблизно 7.38905609893065

**fac(num)** - факторіал числа (приймає один параметр).\
Приклад: fac(5) повертає 120

**floor(num)** - повертає цілу частину числа (округлює вниз).\
Приклад: floor(25.66) повертає 25

**int(num)** - перетворює число з плаваючою комою на ціле число шляхом відсікання дробової частини.\
Приклад: int(1.8) повертає 1

**int\_to\_string(number, delimiter)** - перетворює число на рядок із вказаним роздільником.&#x20;

**is\_float(txt)** - перевіряє, чи є рядок числом (включно з десятковими).

**is\_int(txt)** - перевіряє, чи є рядок числом. \
Приклад: is\_int("5") повертає True, тоді як is\_int("text") повертає False

**log(num, base)** - обчислює логарифм числа, приймаючи два параметри: число та основу (за замовчуванням —&#x20;e).\
Приклад: log(E) повертає 1 (де E — число Ейлера), log(100, 10) повертає 2

**max(a, b, c)** - знаходить максимальне число серед перелічених значень, приймаючи необмежену кількість параметрів (кожен має бути числом).\
Приклад: max(4, 2, 9, 6) повертає 9

**md5(text)** - генерує MD5-хеш із рядка.\
Приклад: hash = md5("Hello world") повертає 3e25960a79dbc69b674cd4ec67a72c62

**min(a, b, c)** - знаходить мінімальне число серед перелічених значень, приймаючи необмежену кількість параметрів (кожен має бути числом).\
Приклад: min(4, 2, 9, 6) повертає 2

**pow(num, st)** - підносить число до степеня, приймаючи два параметри: основне число та показник степеня.\
Приклад: pow(5, 2) повертає 25

**pyt(a, b)** - Обчислює квадратний корінь із суми квадратів двох значень, приймаючи два параметри: a і b.\
Приклад: pyt(5, 2) повертає 5.385164807134504

**random(low, high)** - генерує випадкове число. Функція приймає два параметри: нижню та верхню межі.\
Приклад: random(-10, 10)

**round(num)** - виконує математичне округлення числа.&#x20;Приклад: round(1.8).

Також можна округляти до певної кількості знаків після коми.\
Приклад: round(1.8888888, 2) повертає 1.89.&#x20;

**sha1(text)** - генерує SHA-1 хеш із рядка.\
Приклад: hash = sha1("Hello world") повертає 7b502c3a1f48c8609ae212cdfb639dee39673f5e

**sha256(text)** - генерує SHA-256 хеш із рядка.\
Приклад: hash = sha256("Hello world") повертає 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c

**sqrt(num)** - обчислює квадратний корінь числа, приймаючи один параметр: число.\
Приклад: sqrt(25) повертає 5

**sin() cos() tan() asin() acos() atan() atan2()** - тригонометричні функції (не забувайте враховувати їхні області визначення).

{% hint style="success" %}
Математичні функції можна виконувати не лише в полі "Калькулятор", а й безпосередньо в полі "Повідомлення", записуючи вирази у такому форматі: **#{2+2}, #{random(0,100)}**, тощо.
{% endhint %}

</details>

<details>

<summary>Приклад</summary>

Спробуймо цю функцію! Це дуже просто: просто введіть її, вкажіть параметри та отримайте результат — як у математиці!

<div data-with-frame="true"><figure><img src="/files/30b47f5248ed68fa74601f5ba519683a928338c1" alt=""><figcaption></figcaption></figure></div>

Ось результат:

<div data-with-frame="true"><figure><img src="/files/76134814276f5236202fb2a1333fb9c200ff5fcc" alt="" width="375"><figcaption></figcaption></figure></div>

Приклад використання **int\_to\_string()**:

<div data-with-frame="true"><figure><img src="/files/9d09155d2af3f77fe8e4e44bfd1e453e77b994c4" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/c7aaa56010347538ffd876e0810ec38a4cd0de8c" alt="" width="375"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Приклад коду для копіювання</summary>

Код для поля "Повідомлення":

```
abs(#{A}) = #{a1} 
ceil(#{X}) = #{b1} 
customizable_round_multiply(#{X}, #{Y}, 2) = #{c1}
customizable_round_division(#{X}, #{Y}, 3) = #{d1} 
exp(4) = #{e1}
fac(#{C}) = #{f1}
floor(#{X}) = #{g1}        
floor(#{Y}) = #{floor(#{Y})}
int(#{X}) = #{h1}            
int(#{Y}) = #{int(#{Y})}
is_float("#{text}") = #{i1}      
is_float("#{X}") = #{is_float("#{X}")}    
is_int("#{text}") = #{j1}         
is_int("#{C}") = #{is_int("#{C}")}
is_int("#{X}") = #{is_int("#{X}")}
log(#{C}) = #{k1}
max(#{X}, #{Y}, #{C}) = #{l1} 
md5("#{text}") = #{m1} 
min(#{X}, #{Y}, #{C}) = #{n1}
pow(#{C},#{C}) = #{o1} 
pyt(5,2) = #{o2}
random(0, #{C}) = #{p1} 
round(#{Y}) = #{r1}
sha1("#{text}") = #{s1}
sha256("#{text}") = #{t1}
sqrt(#{C}) = #{u1} 
sin(#{X}) = #{v1}
cos(#{X}) = #{w1}
tan(#{X}) = #{x1} 
asin(#{L}) = #{y1} 
acos(#{L}) = #{a2} 
atan(#{X}) = #{b2} 
atan2(#{X},#{Y}) = #{c2}
```

Код для поля "Калькулятор":

```
/*встановлення універсальних чисел для обчислень*/
X=1.275
Y=5.822
A=-2.352
C=5
L=0.5
text="Hello, World!"
/*обчислення*/
a1=abs(A) 
b1=ceil(X) 
c1=customizable_round_multiply(X,Y,2) 
d1=customizable_round_division(X,Y,3) 
e1=exp(4) 
f1=fac(C) 
g1=floor(X) 
h1=int(X) 
i1=is_float(text) 
j1=is_int(text) 
k1=log(C) 
l1=max(X,Y,C) 
m1=md5(text) 
n1=min(X,Y,C) 
o1=pow(C,C) 
o2=pyt(5,2)
p1=random(0,C) 
r1=round(Y) 
s1=sha1(text) 
t1=sha256(text) 
u1=sqrt(C) 
v1=sin(X) 
w1=cos(X) 
x1=tan(X) 
y1=asin(L) 
a2=acos(L) 
b2=atan(X) 
c2=atan2(X,Y)
```

</details>

## Робота з координатами

**distance()**

<details>

<summary>Опис</summary>

**distance(lat1, lon1, lat2, lon2)**- обчислює відстань між двома координатами в кілометрах

**lat1, lat2** - широта початкової та кінцевої точок

**lon1, lon2** - довгота початкової та кінцевої точок

</details>

<details>

<summary>Приклади</summary>

Приклад: `distance(52.2296756, 21.0122287, 52.406374, 16.9251681)`

Результат: `278.5459739738798`

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/uk/chatbot/functions/kalkulyator/math.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
