# الدوال الرياضية

## دالة رياضية

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" %}
يمكن تنفيذ الدوال الرياضية ليس فقط في حقل "Calculator" بل أيضًا مباشرة في حقل "Message" بكتابة التعابير بالتنسيق التالي: **#{2+2}, #{random(0,100)}**، إلخ.
{% endhint %}

</details>

<details>

<summary>مثال</summary>

لنجرّب هذه الدالة! إنها بسيطة جدًا: فقط أدخلها، وحدد المعاملات، واحصل على النتيجة — تمامًا مثل الرياضيات!

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

إليك النتيجة:

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

مثال على استخدام **int\_to\_string()**:

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

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

</details>

<details>

<summary>مثال على الكود للنسخ</summary>

الكود لحقل "Message":

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

الكود لحقل "Calculator":

```
/*تعيين أرقام عامة للحسابات*/
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/ar/chatbot/functions/alaalh-alhasbh/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.
