تخطَّ إلى المحتوى

8. الدوال

أن تكتب دالة لها معاملات ونوع إرجاع، وتستدعيها بعد تعريفها.

  • الدالة مجموعة تعليمات لها اسم. تبدأ بسطر مثل داله مساحة(ط كسر, ع كسر) كسر:، ثم يأتي جسمها مُزاحاً تحته.
  • بين القوسين المعاملات: اسم كل قيمة تأخذها الدالة ونوعها. وبعد القوسين نوع الإرجاع: نوع ما ترجعه. ونوع الإرجاع فراغ لدالة لا ترجع قيمة.
  • ارجع تنهي الدالة وترجع القيمة المكتوبة بعدها.
  • تُستدعى الدالة بعد تعريفها في الملف.
مثال
داله مساحة(ط كسر, ع كسر) كسر:
ارجع ط * ع
اطبع(مساحة(2.5, 4.0))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
10.0

جرّب هذا المثال في الملعب

استدعاء الدالة قبل تعريفها:

يسبب الخطأ
اطبع(ضعف(2))
داله ضعف(س عدد) عدد:
ارجع س * 2
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
​[خطأ دلالي E0125] سطر 1:6 - الدالة أو الهيكل 'ضعف' غير معرّف   1 | اطبع(ضعف(2))     |      ^~~  تلميح: هل تقصد 'اضف'؟

رمز الخروج: 2

في فهرس الأخطاء: E0125

جرّب هذا المثال في الملعب

يصلحه
داله ضعف(س عدد) عدد:
ارجع س * 2
اطبع(ضعف(2))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
4

جرّب هذا المثال في الملعب

ودالة لها مسار ينتهي بلا ارجع:

يسبب الخطأ
داله اشارة(س عدد) نص:
اذا س > 0:
ارجع "موجب"
اطبع(اشارة(-1))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
​[تحذير دلالي E0266] سطر 1:1 - الدالة 'اشارة' قد تنتهي دون إرجاع قيمة   1 | داله اشارة(س عدد) نص:     | ^~~~~  تلميح: أضف 'ارجع قيمة' في نهاية الدالة وفي كل مسار من مسارات الشروط.[خطأ تشغيل E0339] سطر 1:1 - انتهت الدالة 'اشارة' دون إرجاع قيمة من النوع 'نص' (أضف 'ارجع' في كل المسارات)  داله اشارة(س عدد) نص:

رمز الخروج: 3

في فهرس الأخطاء: E0266، E0339

جرّب هذا المثال في الملعب

يصلحه
داله اشارة(س عدد) نص:
اذا س > 0:
ارجع "موجب"
ارجع "غير موجب"
اطبع(اشارة(-1))
المخرج المسجَّل في الكتاب المرجعيmeem برنامج.م · 0.10.0
غير موجب

جرّب هذا المثال في الملعب

اكتب دالة اولي(ن عدد) منطقي ترجع صواب إن كان ن أولياً، واطبع بها الأعداد الأولية حتى 30.

اعرض الحل
الحل
داله اولي(ن عدد) منطقي:
اذا ن < 2:
ارجع خطاء
ق = 2
طالما ق * ق <= ن:
اذا ن % ق == 0:
ارجع خطاء
ق += 1
ارجع صواب
لكل ع في مدى(1, 31):
اذا اولي(ع):
اطبع(ع)
مخرجات مسجّلة من المجمّعmeem 08_حل.م · meem 0.10.0+b01b55f
2357111317192329

الدوال