التعبيرات
📄 الأصل: expressions.naftah
📦 تحميل الملف: ⬇ تحميل
🔗 عرض الملف:
--- SPDX-License-Identifier: Apache-2.0
--- Copyright © The Naftah Project Authors
---*
هذا الملف يوضح كيفية التعامل مع التعبيرات الحسابية والمنطقية في لغة نفطه، ويغطي:
- استخدام معاملات الضرب (`*`, `ضارب`, `.*.`)
- استخدام معامل الأس (`**`) مع أرقام وسلاسل
- التحقق من سلوك العمليات بين أنواع مختلفة: أرقام، سلاسل، قيم منطقية، وفارغة
- الاختلاف بين الأساليب النقطية والغير نقطية في التنفيذ
*---
--- تعريف ثابت "ا" بضرب عددين صحيحين
ثابت ا تعيين 1 * 100
--- تعريف ثابت "ب" بضرب سلسلة عددية مع رقم باستخدام "ضارب"
ثابت ب تعيين "1" ضارب 100
--- استخدام الصيغة النقطية لضرب سلسلة عددية مع رقم
ثابت ب1 تعيين "1" .ضارب. 100
--- تعريف ثابت باستخدام الأس المكرر: 2 ** (3 ** 2) = 2 ** 9 = 512
ثابت ا_1 تعيين 2 ** 3 ** 2
--- استخدام الأس مع سلاسل عددية: "2" ** 3 ** "2"
ثابت ب_1 تعيين "2" ** 3 ** "2"
--- ضرب القيمة المنطقية "صحيح" بالعدد 5 (صحيح = 1)
ثابت ت تعيين صحيح * 5
--- ضرب بصيغة نقطية
ثابت ت1 تعيين صحيح .*. 5
--- ضرب "خاطئ" بالعدد 5 (خاطئ = 0)
ثابت ث تعيين خاطئ ضارب 5
--- ضرب "خاطئ" بالعدد 10
ثابت ج تعيين خاطئ * 10
--- ضرب "فارغ" بالعدد 3 (فارغ = 0)
ثابت ح تعيين فارغ ضارب 3
--- ضرب سلسلة حرفية بالحرف 'ب' في العدد 3 => 'ببب'
ثابت خ تعيين 'ب' * 3
--- ضرب عدد بـ سلسلة => تكرار السلسلة حسب الرقم
ثابت د تعيين 50 ضارب "خ"
--- ضرب ثابت موجود "ا" في 15
ثابت ذ تعيين ا * 15
--- ضرب صحيح * خاطئ = 1 * 0 = 0
ثابت ر تعيين صحيح * خاطئ
--- ضرب صحيح * صحيح = 1 * 1 = 1
ثابت ز تعيين صحيح * صحيح
--- ضرب خاطئ * خاطئ = 0 * 0 = 0
ثابت س تعيين خاطئ * خاطئ
--- تكرار سلسلة "ابت" 4 مرات
ثابت ش تعيين "ابت" * 4
--- نفس العملية باستخدام الأسلوب النقطي
ثابت ش1 تعيين "ابت" .*. 4
--- طباعة كافة النتائج بصيغة قالب ديناميكي
إطبع("ا = ${ا}، ب = ${ب}، ب1 = ${ب1}، ت = ${ت1}، ت = ${ت1}، ث = ${ث}، ج = ${ج}، ح = ${ح}، خ = ${خ}، د = ${د}، ذ = ${ذ}، ر = ${ر}، ز = ${ز}، س = ${س}، ش = ${ش}، ش1 = ${ش1}")
---* تجارب إضافية لتوضيح سلوك الأس مع سلاسل نصية *---
--- الجذر التربيعي لـ 4 = 2
"4" ** "0.5"
--- مقلوب العدد 10 = 0.1
"10" ** "-1"
--- رفع 3.14 للأس 2
"3.14" ** 2
--- رفع سلسلة فارغة للأس 2 => ينتج قيمة_غير_رقمية (NaN)
"" ** 2
--- سلسلة تحتوي على فراغ => تعتبر غير عددية => ينتج قيمة_غير_رقمية (NaN)
" " ** 2
--- سلسلة تحتوي على فراغ مفرد محاط بعلامات اقتباس مفردة => ينتج قيمة_غير_رقمية (NaN)
' ' ** 2
--- سلسلة تحتوي على عدة فراغات => ينتج قيمة_غير_رقمية (NaN)
" " ** 2
--- رفع سلسلة "مرحبا" لأس 2 => ناتج غير رقمي => ينتج قيمة_غير_رقمية (NaN)
"مرحبا" ** 2
--- سلسلة مكونة من حروف وأرقام => ينتج قيمة_غير_رقمية (NaN)
"مرحبا12312" ** 2