الدوال والثوابت المدعومة
فيما يلي كل ما يقبله المحلّل، وأي رمز آخر يُرفض حفاظًا على الأمان.
| الفئة | المتاح | مثال |
|---|---|---|
| حساب المثلثات | sin, cos, tan, asin, acos, atan | sin(pi/2) = 1 (بالتقدير الدائري) |
| الجذور والقيمة المطلقة | sqrt, cbrt, abs | sqrt(16) = 4؛ cbrt(27) = 3 |
| اللوغاريتمات والدالة الأسية | ln, log (الأساس 10), log2, exp | log(1000) = 3؛ ln(e) = 1 |
| التقريب | floor, ceil, round | floor(2.7) = 2؛ ceil(2.1) = 3 |
| دوال بوسيطين | min(a, b), max(a, b) | max(3, 7) = 7 |
| الثوابت | pi, e, tau | tau = 2 x pi = 6.283185... |
| العوامل | + - * / % ^ والأقواس | 2^10 = 1024؛ 10 % 3 = 1 |
- تنطبق وحدة الزاوية على الدوال المثلثية فقط: ففي وضع الدرجات تُحوَّل مدخلات sin/cos/tan من الدرجات، وتُعاد نتائج asin/acos/atan بالدرجات.
- الرمز log هنا يعني اللوغاريتم العشري ذا الأساس 10؛ استخدم ln للوغاريتم الطبيعي وlog2 للأساس 2.
- المحلّل قائمة سماح أمنية: فالتعابير لا تُمرَّر إلى eval إطلاقًا، وأي معرّف غير معروف يجعل التعبير كله غير صالح بدل التخمين.
- تحدّ حسابات الفاصلة العائمة مزدوجة الدقة من النتائج (نحو 15-16 رقمًا معنويًا)، وآثار التقريب الطفيفة مثل ظهور 0.30000000000000004 بدل ناتج 0.1 + 0.2 أمر متأصل في الفاصلة العائمة.
ما هي هذه الآلة الحاسبة العلمية؟
الآلة الحاسبة العلمية تحسب تعابير رياضية تتجاوز العمليات الحسابية الأساسية: من حساب مثلثات ولوغاريتمات ودوال أسية وجذور وثوابت. وهذه الحاسبة تستقبل التعبير كاملًا على هيئة نص وتطبّق ترتيب العمليات القياسي: الأقواس أولًا، ثم الأسس، ثم الضرب والقسمة وباقي القسمة، ثم الجمع والطرح (PEMDAS/BODMAS).
الدوال المدعومة: sin وcos وtan ومعكوساتها asin وacos وatan؛ وsqrt (الجذر التربيعي) وcbrt (الجذر التكعيبي)؛ وabs (القيمة المطلقة)؛ وln (اللوغاريتم الطبيعي) وlog (اللوغاريتم العشري) وlog2 (لوغاريتم الأساس 2) وexp (رفع e إلى أس)؛ وfloor وceil وround؛ إضافة إلى الدالتين ذواتي الوسيطين min(a, b) وmax(a, b). والثوابت المدعومة: pi (3.14159...) وe (2.71828...) وtau (2 x pi). والعوامل المدعومة: + - * / % (باقي القسمة) و^ (الأس)، إلى جانب الأقواس وإشارة الطرح الأحادية.
يُحسب التعبير بواسطة محلّل آمن يعتمد قائمة سماح: إذ تُجزّأ المدخلات ثم تُطابق مع القائمة الثابتة للدوال والثوابت والأعداد والعوامل المسموح بها، ويُرفض كل ما هو خارجها. ولا تمرر الحاسبة مدخلاتك أبدًا إلى دالة eval في محرك JavaScript، فلا يمكن تنفيذ أي شيفرة عشوائية، وأي اسم غير معروف لا ينتج عنه سوى غياب النتيجة.
يتحكم إعداد وحدة الزاوية في حساب المثلثات: ففي وضع الدرجات تُفسَّر وسائط sin وcos وtan على أنها درجات، وتُعاد نتائج asin وacos وatan بالدرجات. أما في وضع التقدير الدائري، وهو الوضع الرياضي الافتراضي، فتكون جميع الزوايا بالراديان.
كيفية استخدام الآلة الحاسبة العلمية
- اكتب تعبيرك، مثل: sin(pi/6) + sqrt(16) * 2^3. توضع وسائط الدوال بين قوسين، ويجب كتابة الضرب صراحةً بالعلامة * (اكتب 2*pi لا 2pi).
- اختر وحدة الزاوية، تقديرًا دائريًا أو درجات، قبل حساب الدوال المثلثية. فالتعبير sin(30) يساوي 0.5 في وضع الدرجات، بينما يساوي نحو -0.988 في وضع التقدير الدائري.
- اقرأ النتيجة. وتُعرض النتائج الكبيرة جدًا أو الصغيرة جدًا بالصيغة العلمية (e-notation).
- إذا لم تظهر أي نتيجة، فتحقق من توازن الأقواس، ومن أسماء الدوال غير المعروفة، ومن الضرب الضمني، فمحلّل قائمة السماح يرفض كل ما لا يتعرف عليه.
ترتيب العمليات (PEMDAS)
تُحسب التعابير بهذا الترتيب: الأقواس (الداخلية أولًا)، ثم تطبيق الدوال، ثم الرفع إلى أس ^ (تجميعه من اليمين)، ثم إشارة الطرح الأحادية، ثم * و/ و% من اليسار إلى اليمين، ثم + و- من اليسار إلى اليمين. وهذا يوافق العرف القياسي PEMDAS/BODMAS المُدرَّس في الرياضيات.
مثال محلول: sin(pi/6) + sqrt(16) * 2^3 في وضع التقدير الدائري. الخطوة 1 — الأقواس والدوال: pi/6 = 0.523599 ومنها sin(0.523599) = 0.5؛ وsqrt(16) = 4. الخطوة 2 — الأس: 2^3 = 8. الخطوة 3 — الضرب قبل الجمع: 4 * 8 = 32. الخطوة 4 — الجمع: 0.5 + 32 = 32.5.
وثمة عرفان يستحقان الانتباه: الرفع إلى أس يُجمَّع من اليمين، فيكون 2^3^2 = 2^(3^2) = 2^9 = 512 وليس (2^3)^2 = 64؛ والعامل % يعني باقي القسمة (المقياس)، فيكون 10 % 3 = 1، وهو لا يعني النسبة المئوية.
أخطاء شائعة
- حساب الدوال المثلثية بوحدة زاوية خاطئة: فالقيمة sin(30) تساوي 0.5 في وضع الدرجات فقط، أما بالتقدير الدائري فتساوي نحو -0.988.
- كتابة الضرب الضمني مثل 2pi أو 3(4+1)، فالمحلّل يشترط العلامة * صراحةً: 2*pi و3*(4+1).
- توقّع أن يعني % النسبة المئوية، فهو عامل باقي القسمة: 50 % 8 = 2؛ ولحساب 50% من 8 اكتب 0.5*8.
- إساءة قراءة أسبقية العوامل: فالتعبير -3^2 يحسب الأس أولًا فيعطي -9؛ واكتب (-3)^2 للحصول على 9.
- افتراض أن الأسس تُجمَّع من اليسار: فالتعبير 2^3^2 يعني 2^(3^2) = 512 لا 64.
الأسئلة الشائعة
ما الدوال التي تدعمها هذه الآلة الحاسبة العلمية؟
الدوال المثلثية sin وcos وtan ومعكوساتها asin وacos وatan؛ والجذران sqrt وcbrt؛ وabs؛ واللوغاريتمات ln (الطبيعي) وlog (الأساس 10) وlog2؛ وexp؛ ودوال التقريب floor وceil وround؛ والدالتان min وmax بوسيطين؛ والثوابت pi وe وtau؛ والعوامل + - * / % ^ مع الأقواس. وكل ما هو خارج هذه القائمة يرفضه محلّل قائمة السماح.
كيف أبدّل بين الدرجات والتقدير الدائري؟
استخدم محدّد وحدة الزاوية. ففي وضع الدرجات تفسّر الدوال sin وcos وtan وسائطها على أنها درجات وتعيد الدوال العكسية نتائجها بالدرجات؛ وفي وضع التقدير الدائري تُستخدم الراديانات في كل شيء، وهو الوضع الرياضي الافتراضي. وقد يعطي التعبير نفسه نتيجتين مختلفتين بين الوضعين: فـ sin(30) يساوي 0.5 بالدرجات ونحو -0.988 بالتقدير الدائري.
ما ترتيب العمليات الذي تتبعه الحاسبة؟
العرف القياسي PEMDAS: الأقواس أولًا، ثم الدوال، ثم الرفع إلى أس (بتجميع من اليمين)، ثم إشارة الطرح الأحادية، ثم الضرب والقسمة وباقي القسمة من اليسار إلى اليمين، ثم الجمع والطرح من اليسار إلى اليمين. ولذلك 1 + 2 * 3^2 = 1 + 2 * 9 = 19، و2^3^2 = 2^9 = 512.
لماذا لا يعطي تعبيري أي نتيجة؟
لا يقبل المحلّل سوى الرموز المدرجة في قائمة السماح. وأشيع الأسباب: الضرب الضمني (اكتب 2*pi لا 2pi)، أو عدم توازن الأقواس، أو استخدام أسماء دوال غير معروفة (القائمة المدعومة ثابتة)، أو عملية رياضية غير صالحة مثل جذر عدد سالب أو قسمة تنتج ما لا نهاية، أو تعبير يتجاوز 300 حرف. والرفض مقصود، فالحاسبة لا تخمّن ولا تنفّذ أي شيفرة عشوائية.
ماذا يفعل العامل %؟
يحسب باقي القسمة (عملية المقياس): فمثلًا 10 % 3 = 1 لأن 10 = 3 x 3 + 1. وهو لا يحسب النسب المئوية. ولحساب نسبة مئوية استخدم الضرب: فـ 15% من 80 تساوي 0.15*80 = 12.
هل من الآمن كتابة أي شيء في خانة التعبير؟
نعم. تُعالَج المدخلات بواسطة مجزّئ رموز مكتوب يدويًا يعتمد قائمة سماح ومقيّم بخوارزمية ساحة التبديل، ولا تُمرَّر أبدًا إلى دالة eval في JavaScript ولا إلى أي آلية لتنفيذ الشيفرة. وأي رمز خارج القائمة الثابتة من الأعداد والدوال والثوابت والعوامل المدرجة يؤدي إلى رفض التعبير بالكامل.
المراجع
- ISO 80000-2:2019. Quantities and units — Part 2: Mathematics (standard notation for functions, logarithms and angular measure).
- Abramowitz M, Stegun IA (eds). Handbook of Mathematical Functions. National Bureau of Standards, 1964 (definitions of elementary transcendental functions).
- Weisstein, Eric W. "Precedence." MathWorld — A Wolfram Web Resource. mathworld.wolfram.com.