Google Play badge

تعريف الوظائف


تعريف الوظائف

في هذا الدرس، سنتعلم الدوال. الدالة عبارة عن مجموعة صغيرة من التعليمات، تشبه الوصفة، تُخبر الحاسوب بما يجب فعله. تساعدنا الدوال على تجزئة المشاكل الكبيرة إلى أجزاء صغيرة، مما يُسهّل عملنا ويوضح برامجنا. سنتعرف اليوم على الدوال، ولماذا نستخدمها، وكيف تُساعدنا على إنشاء برامج بطريقة بسيطة.

مقدمة

تخيل أن لديك آلة لعبة تؤدي نفس الوظيفة دائمًا. عند الضغط على زر، تُصدر الآلة نغمة. تعمل الدالة في برنامج الحاسوب بطريقة مشابهة. إنها مجموعة من التعليمات التي يمكنك استخدامها مرارًا وتكرارًا. تُعرّف الدالة مرة واحدة، ثم يمكنك استدعاؤها كلما احتجت إليها. هذه الفكرة تُسهّل فهم البرامج وتُسرّع بنائها.

في حياتنا اليومية، نتبع خطواتٍ مُحددة لإنجاز المهام. على سبيل المثال، عندما تُنظف أسنانك أو تُحضّر شطيرة، تتبع خطواتٍ بسيطةً مُرتبة. الوظيفة تُشبه هذه الخطوات. فبدلاً من تذكير نفسك بكيفية أداء هذه المهام في كل مرة، تتذكر الخطوات أو تضغط على زرٍّ يُنجزها لك.

ما هي الوظيفة؟

الدالة هي كتلة برمجية مُسمّاة تُنفّذ مهمة مُحددة. يُمكنك تشبيهها ببرنامج مُصغّر داخل برنامجك الأكبر. تُكتب الدوال لأداء مهمة صغيرة واحدة. يُمكنها إضافة أرقام، أو تحية شخص ما، أو حتى رسم صور على الشاشة. الفكرة هي إخفاء تفاصيل المهمة داخل الدالة. بهذه الطريقة، ما عليك سوى استدعاء الدالة باسمها عند الحاجة إلى إنجازها.

على سبيل المثال، قد تبدو وظيفة بسيطة كمفتاح إضاءة. عند تشغيل المفتاح، يُضاء الضوء. وبالمثل، عند استدعاء وظيفة، يُنفّذ الحاسوب الإجراءات داخلها. هذا يُحافظ على تنظيم عملك ويُسهّل اكتشاف أي مشاكل وإصلاحها.

لماذا نستخدم الوظائف؟

هناك العديد من الأسباب الوجيهة لاستخدام الدوال في البرمجة. أولًا، تساعدنا الدوال على تنظيم عملنا. فبدلًا من كتابة نفس التعليمات مرارًا وتكرارًا، نكتبها مرة واحدة في دالة ثم نستدعيها عند الحاجة. هذا يوفر الوقت ويمنع الأخطاء. ثانيًا، تساعدنا الدوال على إعادة استخدام الكود. فبمجرد تعريف دالة، يمكن استخدامها في أجزاء عديدة من برنامجنا. ثالثًا، تُسهّل الدوال قراءة البرامج. فعند تقسيم مهمة إلى دوال أصغر، يمكنك النظر إلى أسماء الدوال لفهم وظيفة البرنامج.

تخيل أنك تبني قلعة ليغو كبيرة. تستخدم مكعبات صغيرة لبناء القلعة بأكملها. كل مكعب صغير يُشبه دالة تؤدي وظيفة محددة. عند تجميع جميع المكعبات، تحصل على القلعة كاملة. وبالمثل، تُشكل الدوال الفردية برنامجًا كاملًا.

كيفية تعريف الدالة

يمكننا تعريف دالة باستخدام شيفرة خاصة. في العديد من لغات البرمجة، نستخدم كلمة مفتاحية تُخبر الحاسوب بأننا بصدد إنشاء دالة. من اللغات الشائعة المستخدمة في تعليم البرمجة بايثون. في بايثون، نستخدم كلمة def لبدء دالة. إليك مثال بسيط:

مثال:

 تعريف say_hello():
    طباعة("مرحبا يا صديقي!")
  

في هذا المثال، تُسمى الدالة say_hello . تُخبر كلمة def الحاسوب بأننا نُعرّف دالة. تقوم الدالة بمهمة واحدة: طباعة رسالة سهلة على الشاشة.

بعد تعريف هذه الدالة، يُمكننا استخدامها لاحقًا في برنامجنا. يُسمى هذا استدعاء الدالة. سيُنفّذ الحاسوب جميع خطوات الدالة في كل مرة يتم استدعاؤها.

أمثلة بسيطة للوظائف

سنتناول الآن ثلاثة أمثلة بسيطة للدوال. إنها سهلة الفهم وتساعدنا على تعلم المفاهيم الأساسية.

المثال 1: دالة التحية

في المثال الأول، أنشأنا دالة تُرحّب بشخص ما باسمه. عند استدعاء هذه الدالة، ستُلقي التحية على صديق.

شفرة:

 تعريف التحية(الاسم):
    طباعة ("مرحبا، " + الاسم + "!")
  
# استدعاء الدالة باسم "Alice"
تحية ("أليس")
  

شرح خطوة بخطوة:

المثال 2: دالة الجمع

في المثال الثاني، نكتب دالة تجمع رقمين. تشبه هذه الدالة آلة حاسبة صغيرة تجمع الأرقام معًا.

شفرة:

 def add_numbers(num1, num2):
    النتيجة = num1 + num2
    print("المجموع هو:"، النتيجة)
  
# استدعاء الدالة بالأرقام 3 و 5
إضافة أرقام (3، 5)
  

شرح خطوة بخطوة:

المثال 3: دالة الضرب

في المثال الثالث، سنقوم بإنشاء دالة تقوم بضرب رقم في 2. توضح هذه الدالة كيف يمكن للدالة إرجاع قيمة لاستخدامها لاحقًا.

شفرة:

 تعريف الضرب باثنين (x):
    القيمة الجديدة = x * 2
    إرجاع القيمة الجديدة
  
# استدعاء الدالة وحفظ النتيجة
النتيجة = ضرب في اثنين (4)
طباعة ("4 مضروبًا في 2 يساوي"، النتيجة)
  

شرح خطوة بخطوة:

فهم المعلمات وقيم الإرجاع

يمكن للدوال استقبال معلومات من الخارج عبر معلمات . المعلمة هي متغير يحتفظ بالبيانات عند استدعاء الدالة. في أمثلتنا، الاسم ، والعدد 1 ، والعدد 2 ، و x معلمات.

بعض الدوال تُرجع قيمًا. قيمة الإرجاع هي النتيجة التي تُعيدها الدالة بعد إتمام عملها. في المثال 3، تُرجع الدالة multiply_by_two قيمة تُخزَّن بعد ذلك في متغير.

إن فكرة استخدام المعلمات وقيم الإرجاع تجعل الدوال مرنة وفعّالة. يمكنك تغيير المدخلات للحصول على مخرجات مختلفة، تمامًا كما يؤدي تغيير مكونات الوصفة إلى اختلاف النكهات.

البرمجة المعيارية: تقسيم المشكلات إلى أجزاء

الدوال فكرة أساسية في البرمجة المعيارية . تعني البرمجة المعيارية تقسيم برنامج كبير إلى أجزاء أصغر وأسهل إدارة، أو وحدات. كل دالة تشبه وحدة تؤدي مهمة بسيطة واحدة. عندما تعمل جميع الوحدات معًا، تُشكل برنامجًا كاملًا.

تخيل بناء أحجية. كل قطعة صغيرة وبسيطة. لكن عندما تجمع كل القطع معًا، ترى صورة كاملة. في البرمجة، يتيح لك استخدام الدوال العمل على قطعة صغيرة واحدة في كل مرة. بهذه الطريقة، يُسهّل بناء البرامج وفهمها وإصلاحها.

تساعد البرمجة المعيارية على تقليل التكرار. إذا احتاج جزء من برنامجك إلى أداء نفس المهمة مرارًا وتكرارًا، فاكتب دالة له. ثم في كل مرة تحتاج فيها إلى إنجاز هذه المهمة، ما عليك سوى استدعاء الدالة بدلاً من كتابة نفس الكود.

إن هذا النهج يشبه وجود مساعد يعرف كيفية ربط أربطة الحذاء، وبالتالي لا يتعين عليك إعادة تعلم كيفية القيام بذلك في كل مرة تحصل فيها على زوج جديد من الأحذية.

أمثلة يومية ذات صلة

لنقارن الوظائف بالأنشطة اليومية. تخيل أن لديك العديد من المهام المنزلية. من بينها سقي النباتات. بدلًا من التفكير في جميع الخطوات في كل مرة، يمكنك تذكر عبارة "اسقِ النباتات". في كل مرة تعمل فيها على النباتات، فأنت تستخدم وظيفتك الخاصة.

مثال آخر هو تحضير شطيرة. أولًا، تأخذ شريحتين من الخبز. ثم تضيف الزبدة والجبن، وربما شريحة من لحم الخنزير. وأخيرًا، تجمع الشريحتين معًا. كل خطوة واضحة وبسيطة، كخطوط العرض. باتباع الخطوات في كل مرة، تُحضّر شطيرة لذيذة دون الحاجة إلى التفكير في كل خطوة من الصفر.

تظهر هذه الأمثلة اليومية أن الوظائف تساعدنا في القيام بالعديد من المهام عن طريق تقسيمها إلى أجزاء واضحة وبسيطة.

المزيد حول تعريف الوظائف

عندما تبدأ بتعلم الدوال، ستلاحظ أن لكل دالة اسمًا ، وقائمةً بالمعلمات بين قوسين، وكتلةً من الكود بداخلها. قد يبدو هذا الشكل البسيط كالتالي:

الهيكل العام:

 def function_name(المعلمة 1، المعلمة 2، ...):
    # كتلة الكود
    إرجاع بعض القيمة # إذا لزم الأمر
  

هنا، function_name هو اسم الدالة. المعاملات هي مُدخلات تستخدمها الدالة. كتلة التعليمات البرمجية هي مجموعة التعليمات التي ستُنفذها الدالة. وأخيرًا، return تُعيد النتيجة.

قد ترى أحيانًا دوالًا لا تحتوي على أي معلمات. عندما لا تحتاج الدالة إلى أي معلومات إضافية، تُكتب الأقواس، لكنها تبقى فارغة. وبالمثل، تُنفّذ العديد من الدوال عمليات مثل طباعة الرسائل، ولا تُرجع أي قيمة.

الخصائص الأساسية للوظائف

فيما يلي بعض خصائص الوظائف المهمة التي يجب عليك تذكرها:

باتباع هذه الخصائص، يمكن للمبرمجين إنشاء برامج أسهل فهمًا وتصحيحًا وتحسينًا مع مرور الوقت. وكما هو الحال في الحفاظ على نظافة غرفتك بترتيب ألعابك في صناديق، تُبقي الدوال البرامج مرتبة ومنظمة.

الاختلافات والأفكار الأكثر تقدمًا

مع ازدياد معرفتك بمفهوم الدوال، قد تواجه بعض الاختلافات. أحيانًا لا تُرجع الدوال أي شيء، بل تُنفّذ إجراءات فقط. وفي أحيان أخرى، قد تستدعي الدوال دوالًا أخرى. يُعرف هذا باسم الدوال المتداخلة أو تركيب الدوال.

على سبيل المثال، قد تستدعي دالة ما دالة ترحيب قبل أن تبدأ بمهمة أخرى. يتيح لك هذا التوزيع الطبقي للدوال بناء برامج معقدة من عدة مهام صغيرة وبسيطة.

في مرحلة لاحقة، قد تستكشف مواضيع مثل الدوال التكرارية . الدالة التكرارية هي دالة تستدعي نفسها. مع أن هذه الفكرة تبدو معقدة بعض الشيء، إلا أنها ببساطة طريقة أخرى لتقسيم المسائل إلى أجزاء أصغر. في الوقت الحالي، يكفي أن تعرف أن الدوال تساعدك على كتابة أكواد ذكية ومرتبة.

أمثلة إضافية وحلول خطوة بخطوة

دعونا نلقي نظرة على مثالين أكثر تفصيلاً يوضحان كيفية عمل الوظائف خطوة بخطوة.

المثال 4: دالة للتحقق من الأعداد الزوجية

 تعريف is_even(الرقم):
    # تحقق مما إذا كان الرقم زوجيًا
    إذا كان الرقم % 2 == 0:
        العودة صحيح
    آخر:
        العودة خطأ

# استخدام الدالة للتحقق من الرقم 6
النتيجة = is_even(6)
طباعة("هل 6 زوجي؟"، النتيجة)
  

شرح خطوة بخطوة:

المثال 5: دالة لحساب مساحة المربع

 تعريف مساحة المربع (طول الجانب):
    # احسب المساحة باستخدام الصيغة: المساحة = طول الضلع * طول الضلع
    المساحة = طول الضلع * طول الضلع
    منطقة العودة

# استخدام الدالة لحساب مساحة المربع الذي يبلغ طول ضلعه 5
مساحة المربع = مساحة المربع(5)
print("مساحة المربع هي", square_area)
  

شرح خطوة بخطوة:

المثال 6: دالة لتحديد الأكبر من بين رقمين

 تعريف larger_number(a, b):
    # قارن بين رقمين وأرجع الرقم الأكبر
    إذا أ > ب:
        العودة
    آخر:
        العودة ب

# استخدام الدالة للعثور على العدد الأكبر بين 7 و10
الأكبر = larger_number(7, 10)
print("الرقم الأكبر هو الأكبر")
  

شرح خطوة بخطوة:

لماذا تعتبر الوظائف مهمة للوحدات النمطية

الدوال أداة فعّالة تساعدنا على بناء البرامج بطريقة معيارية. باستخدام الدوال، يمكنك إنشاء أجزاء منفصلة من برنامجك تعمل بشكل مستقل. هذا يعني أنه إذا كان هناك خطأ في أحد أجزاء برنامجك أو كان بحاجة إلى تحسين، فما عليك سوى إصلاح تلك الدالة بدلاً من البحث في كتلة كبيرة من التعليمات البرمجية.

البرمجة المعيارية أشبه بالبناء باستخدام مكعبات ليغو. كل مكعب مستقل، ويمكن ربطه بطرق مختلفة لإنشاء هياكل مختلفة. إذا انكسر مكعب، يمكنك استبداله دون الحاجة إلى إعادة بناء القلعة بأكملها. باستخدام الدوال، يمكنك بناء كل قسم صغير من برنامجك واختباره وإصلاحه بشكل مستقل.

تساعدك هذه الطريقة في البرمجة على فهم المشكلات بشكل أفضل، وتُسهّل المهام المعقدة. كما تُعلّمك كيفية التفكير المنطقي في المشكلات وحلها خطوة بخطوة.

ملخص النقاط الرئيسية

في الختام، الدوال جزء أساسي من البرمجة. فهي تُمكّننا من كتابة أكواد واضحة وسلسة وسهلة الفهم. باستخدام الدوال، يُمكننا حل المشكلات الكبيرة بتقسيمها إلى مهام صغيرة وسهلة الإدارة. سواءً كان الأمر تحية صديق، أو إجراء عملية حسابية، أو التحقق من عدد زوجي، تُساعد الدوال في جعل برامجنا بسيطة وممتعة.

تذكر دائمًا: يمكن تسهيل كل مهمة كبيرة باستخدام خطوات صغيرة، وتلك الخطوات الصغيرة هي الوظائف الموجودة في برنامجك.

استمر بالتعلم والاستكشاف والاستمتاع بالبرمجة. الدوال هي الخطوة الأولى لكتابة شيفرة برمجية إبداعية ومفيدة!

Download Primer to continue