التعبيرات

📄 الأصل: 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