# Funciones matemáticas

## Función matemática

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>Descripción</summary>

**abs(num)** - valor absoluto (convierte un número a su equivalente positivo).\
Ejemplo: abs(-256) devuelve 256

**ceil(num)** - redondea un número hacia arriba al entero más cercano.\
Ejemplo: ceil(25.66) devuelve 26

**customizable\_round\_division(a,b,count)** - divide dos números y redondea el resultado a un número específico de decimales (count), donde a es el dividendo y b es el divisor.

**customizable\_round\_multiply(a,b,count)** - multiplica dos números y redondea el resultado a un número específico de decimales (count), donde a y b son los factores.

**exp(num)** - eleva el número de Euler&#x20;e a la potencia del parámetro.\
Ejemplo: exp(2) devuelve aproximadamente 7.38905609893065

**fac(num)** - factorial de un número (toma un parámetro).\
Ejemplo: fac(5) devuelve 120

**floor(num)** - devuelve la parte entera de un número (redondea hacia abajo).\
Ejemplo: floor(25.66) devuelve 25

**int(num)** - convierte un número de punto flotante en un entero truncando la parte decimal.\
Ejemplo: int(1.8) devuelve 1

**int\_to\_string(number, delimiter)** - convierte un número en una cadena con el delimitador especificado.&#x20;

**is\_float(txt)** - verifica si una cadena es un número (incluidos decimales).

**is\_int(txt)** - verifica si una cadena es un número. \
Ejemplo: is\_int("5") devuelve True, mientras que is\_int("text") devuelve False

**log(num, base)** - calcula el logaritmo de un número tomando dos parámetros: el número y la base (el valor predeterminado es&#x20;e).\
Ejemplo: log(E) devuelve 1 (donde E es el número de Euler), log(100, 10) devuelve 2

**max(a, b, c)** - encuentra el número máximo entre los valores enumerados, aceptando un número ilimitado de parámetros (cada uno debe ser un número).\
Ejemplo: max(4, 2, 9, 6) devuelve 9

**md5(text)** - genera un hash MD5 a partir de una cadena.\
Ejemplo: hash = md5("Hello world") devuelve 3e25960a79dbc69b674cd4ec67a72c62

**min(a, b, c)** - encuentra el número mínimo entre los valores enumerados, aceptando un número ilimitado de parámetros (cada uno debe ser un número).\
Ejemplo: min(4, 2, 9, 6) devuelve 2

**pow(num, st)** - eleva un número a una potencia tomando dos parámetros: la base y el exponente.\
Ejemplo: pow(5, 2) devuelve 25

**pyt(a, b)** - Calcula la raíz cuadrada de la suma de los cuadrados de dos valores, aceptando dos parámetros: a y b.\
Ejemplo: pyt(5, 2) devuelve 5.385164807134504

**random(low, high)** - genera un número aleatorio. La función toma dos parámetros: el límite inferior y el límite superior.\
Ejemplo: random(-10, 10)

**round(num)** - realiza el redondeo matemático de un número.&#x20;Ejemplo: round(1.8).

También puedes redondear a un número específico de decimales.\
Ejemplo: round(1.8888888, 2) devuelve 1.89.&#x20;

**sha1(text)** - genera un hash SHA-1 a partir de una cadena.\
Ejemplo: hash = sha1("Hello world") devuelve 7b502c3a1f48c8609ae212cdfb639dee39673f5e

**sha256(text)** - genera un hash SHA-256 a partir de una cadena.\
Ejemplo: hash = sha256("Hello world") devuelve 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c

**sqrt(num)** - calcula la raíz cuadrada de un número tomando un parámetro: el número.\
Ejemplo: sqrt(25) devuelve 5

**sin() cos() tan() asin() acos() atan() atan2()** - funciones trigonométricas (recuerda considerar sus dominios).

{% hint style="success" %}
Las funciones matemáticas pueden realizarse no solo en el campo "Calculadora", sino también directamente en el campo "Mensaje" escribiendo expresiones en el siguiente formato: **#{2+2}, #{random(0,100)}**&#x79; etc.
{% endhint %}

</details>

<details>

<summary>Ejemplo</summary>

¡Probemos esta función! Es realmente simple: solo introdúcela, especifica los parámetros y obtén el resultado, ¡igual que en matemáticas!

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

Aquí está el resultado:

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

Ejemplo de uso de **int\_to\_string()**:

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

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

</details>

<details>

<summary>Ejemplo de código para copiar</summary>

Código para el campo "Mensaje":

```
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}
```

Código para el campo "Calculadora":

```
/*estableciendo números universales para los cálculos*/
X=1.275
Y=5.822
A=-2.352
C=5
L=0.5
text="Hello, World!"
/*cálculo*/
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>

## Trabajando con coordenadas

**distance()**

<details>

<summary>Descripción</summary>

**distance(lat1, lon1, lat2, lon2)**- calcula la distancia entre dos coordenadas en kilómetros

**lat1, lat2** - latitud de los puntos de inicio y final

**lon1, lon2** - longitud de los puntos de inicio y final

</details>

<details>

<summary>Ejemplos</summary>

Ejemplo: `distance(52.2296756, 21.0122287, 52.406374, 16.9251681)`

Resultado: `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/es/chatbot/functions/calculadora/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.
