المهارات الرقمية فصل أول

التاسع

icon

الدوالُّ البرمجيةُ ( Functions)
والروتينُ الفرعيُّ (Subroutines)

الدوالُّ البرمجيةُ  ( Functions )

هي  مجموعةٌ منَ الأوامرِ البرمجيةِ التي تُجمَعُ معًا ضمنَ اسمٍ مُعيَّنٍ، ويُمكِنُ استدعاؤُها وتنفيذُها في أيٍّ منْ أجزاءِ البرنامجِ منْ دونِ حاجةٍ إلى كتابتِها مِرارًا وتكرارًا.

يستفادُ منَ الدوالِّ البرمجيةِ في  :

تنفيذِ مهامَّ مُحدَّدةٍ

حَلِّ مشكلاتٍ مُعيَّنةٍ.

ولكلٍّ منْها خصائصُ عديدةٌ ميِّزُها منْ غيرِها، أنظرُ الشكلَ  ( 4- 1) فهيَ تمتازُ بقابليتِها لإعادةِ الاستخدامِ، وتقبُّلِها المدخلاتِ، وإرجاعِها النتائجَ (المخرجاتُ)


وفي ما يأتي بيانٌ لهذهِ الخصائصِ:

  •   القابليةُ لإعادةِ الاستخدامِ: يُمكِنُ استدعاءُ الدالَّةِ البرمجيةِ مَرّاتٍ عديدةً في البرنامجِ؛ ما يُقلِّلُ منْ تكرارِ المقطعِ البرمجيِّ.
  •   تقبُّلُ المدخلاتِ: يُمكِنُ للدالَّةِ البرمجيةِ أنْ تقبلَ المدخلاتِ؛ لتخصيصِ وظيفتِها بناءً على القِيَمِ المعطاةِ.
  •   إرجاعُ النتائجِ: يُمكِنُ للدالَّةِ البرمجيةِ أنْ تُرجِعَ النتائجَ بعدَ تنفيذِها؛ ما يسمحُ باستخدامِ هذهِ النتائجِ في أماكنَ أُخرى منَ البرنامجِ.

 

مبدأُ عملِ الدالَّةِ البرمجيةِ

 

تعملُ الدالَّةُ البرمجيةُ على استقبالِ المدخلاتِ  إخضاعِها للأوامرِ البرمجيةِ؛ بُغْيَةَ إنتاجِ مخرجاتٍ(Return Value ) تتألَّفُ منْ قيمةٍ واحدةٍ يُمكِنُ الاستفادةُ منْها في أماكنَ أُخرى منَ البرنامجِ، أنظرُ الشكلَ( 4- 2).
 
تُعرَّفُ مدخلاتُ الدالَّةِ البرمجيةِ بأنَّها قيمةٌ أوْ معلومةٌ تُمرَّرُ  إلى الدالَّةِ البرمجيةِ عندَ استدعائِها. تتمثَّلُ وظيفةُ المدخلاتِ في تغييرِ سلوكِ الدالَّةِ البرمجيةِ وتخصيصِها؛ ما يُمكِّنُ الدالَّةَ البرمجيةَ منَ التعاملِ معَ بياناتٍ مختلفةٍ في كلِّ مَرَّةٍ تُستدعى فيها.

 

أنواعُ الدوالِّ البرمجيةِ
تُصنَّفُ الدوالُّ البرمجيةُ إلى نوعينِ، هما: الدوالُّ البرمجيةُ الجاهزةُ( Built-in)  ودوالُّ المُستخدِمِ ( User-defined )
أنظرُ الشكلَ ( 4-3 ) 

 
أوَّلًا: الدوالُّ البرمجيةُ الجاهزة(Built in Functions)
هي لَبِناتُ الأوامرِ التي تُوفِّرُها بيئةُ  البرمجةِ سكراتش  Scratch   بصورةٍ افتراضيةٍ لتنفيذِ أوامرَ  مُحدَّدةٍ مُقدَّمًا منْ طرفِ البرمجيةِ نفسِها ( Built-in )   تشتملُ هذهِ اللَّبِناتُ على مجموعةٍ واسعةٍ منَ الوظائفِ  الأساسيةِ التي يُمكِنُ استخدامُها في إنشاءِ برامجَ ومشروعاتٍ  تفاعليةٍ. ومنْ أمثلتِها: لَبِناتُ الاستشعارِ، ولَبِناتُ الهيئةِ. أنظرُ
الشكلَ (4- 4)

 

ثانيًا: دوالُّ المُستخدِمِ أوِ الروتينُ الفرعيُّ  ( Subroutine)
تتيحُ برمجيةُ سكراتش  Scratch  إنشاءَ لَبِناتٍ خاصةٍ بالمُستخدِمِ عنْ طريقِ نوعٍ جديدٍ منَ اللَّبِناتِ يُسمَى لَبِناتي   My Blocks ويتضمَّنُ تحديدَ اسمٍ خاصٍّ بهذهِ اللَّبناتِ، وتعيينَ الوظيفةِ التي ستؤدّيها. ويُعرَفُ هذا النوعُ بدالَّةِ المُستخدِمِ   User- Defined   ويُطلَقُ عليْهِ أيضًا اسمُ الروتيناتِ الفرعيةِ Subroutines
يتطلَّبُ إنشاءُ روتينٍ فرعيٍّ باستخدامِ لَبِناتي   My Blocks   توافرَ عنصرينِ اثنينِ، هما:

  •   لَبِناتُ التعريفِ   Definition Block  : لَبِناتٌ يضافُ إليْها جميعُ اللَّبِناتِ التي يرادُ تنفيذُها عندَ

استدعاءِ الدالَّةِ أوْ تنفيذِها.

  •   لَبِناتُ الاسمِ   Name Block   : لَبِناتٌ تُستخدَمُ في استدعاءِ لَبِنةِ التعريفِ، ثمَّ تنفيذِها في البرنامجِ.

 

في ما يأتي الخطواتُ اللازمةُ لإنشاءِ روتينٍ فرعيٍّ باستخدامِ لَبِناتي   My Blocks  في برمجيةِ سكراتش Scratch 
 1 -  إنشاءُ مشروعٍ جديدٍ، أوْ  فتحُ مشروعٍ موجودٍ في برمجيةِ


سكراتش  Scratch 

2 -  الانتقالُ إلى بوّابةِ  اللَّبِناتُ البرمجيةُ Blocks
3 -  اختيارُ لَبِناتي  My Blocks 
4 -  الضغطُ على خيارِ  إنشاءُ لَبِنةٍ  Make a Block  فتظهرُ نافذةٌ مُنبثِقةٌ تحوي عددًا منَ الخياراتِ، هيَ:


         أ- تسميةُ الكتلةِ المُخصَّصِة، وذلكَ بإدخالِ اسمِ هذهِ الكتلةِ في النافذةِ المُنبثِقةِ.
          ب- إضافةُ حقلٍ  رقمٌ أوْ نصٌّ .
            ج- إضافةُ حقلٍ  منطقيٌّ 
            د- إضافةُ نصٍّ.

5 -  إكمالُ تعريفِ اللَّبِنةِ الجديدةِ، ثمَّ الضغطُ على زِرِّ  موافقٌ OK
6 -  بعدَ إنشاءِ اللَّبِنةِ، ستظهرُ لَبِنةٌ جديدةٌ في قائمةِ اللَّبِناتِ، يُمكِنُ استخدامُها في أيِّ وقتٍ، وإدخالُ
الأوامرِ فيها.  

 

 

 

 تُراعي برمجيةُ سكراتش   Scratch  عناصرَ المواطنةِ الرقميةِ بتوفيرِها أكثرَ منْ  70   لغةً؛ ما يضمنُ الوصولَ إلى مجتمعٍ عالميٍّ منَ المُستخدِمينَ. ولا شكَّ في أنَّ هذا التعدُّدَ اللغويَّ يتيحُ للأطفالِ والشبابِ - منْ جميعِ الخلفياتِ الثقافيةِ واللغويةِ- المشاركةَ والتعلُّمَ باللغةِ الأُمِّ.
كذلكَ يستطيعُ المُستخدِمونَ تطويرَ مهاراتِهِمُ البرمجيةِ، والتفاعلَ معَ الآخرينِ على نحوٍ أكثرَ فاعليةً؛ ما يُعزِّزُ لديْهِمُ الشعورَ بالانتماءِ إلى مجتمعٍ عالميٍّ مشتركٍ، يتعاونُ فيهِ الجميعُ على التعلُّمِ والإبداعِ.