الدرس (19) تمرير المعلمات (Parameters) إلى الدوال.

رقم الدرس 19
آخر تحديث 2025/07/22
تقدم القراءة

الدرس 19: المعلمات - أعطِ تعليمات لعاملك الرقمي


تخيل أنك استأجرت أفضل طاهٍ في العالم، لكنه يرفض الطهي إلا إذا طلبت منه “طبق الشيف المميز”. هذا كل ما يعرفه. سيكون مفيدًا في المرة الأولى، لكنه عديم الفائدة تمامًا إذا أردت شيئًا مختلفًا. للأسف، الكثير من المبرمجين يبنون دوالهم بهذه الطريقة: أدوات غبية تفعل شيئًا واحدًا فقط. اليوم، ستتعلم كيف تحوّل عاملك الرقمي من مجرد “منفذ” إلى “خبير” حقيقي يستمع لتعليماتك. ستكتشف سر “المعلمات” (Parameters)، وهي القناة السحرية التي تسمح لك بتمرير الأوامر، والبيانات، والوصفات إلى دوالك، مما يجعلها مرنة وقوية بشكل لا يصدق.


في هذا الدرس ستتعلم


لماذا تحتاج الدوال إلى “معلومات” لتعمل بمرونة.
الفرق الجوهري بين “المعلمة” (Parameter) و “الوسيط” (Argument).
كيفية تعريف دالة تقبل معلمات من أنواع مختلفة.
كيفية استدعاء دالة وتمرير الوسائط الصحيحة لها.
أهمية ترتيب ونوع المعلمات كـ “عقد” لا يمكن كسره.

الفصل الأول: الطاهي محدود القدرات (دالة بدون معلمات)
في الدرس السابق، بنينا “عاملًا” متخصصًا يطبع ترويسة. كان ذلك رائعًا لأنه منعنا من تكرار الكود. لكن هذا العامل، أو “الطاهي”، محدود جدًا. إنه يعرف وصفة واحدة فقط وينفذها بالحرف.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

هذا مفيد، لكن ماذا لو أردنا ترحيبًا مخصصًا؟ ماذا لو أردنا أن تقول الترويسة “مرحبًا يا أحمد” أو “مرحبًا يا سارة”؟ دالتنا الحالية لا تستطيع فعل ذلك. إنها لا تملك طريقة لاستقبال معلومات من الخارج.
الفصل الثاني: الوصفة والمكونات (Parameters vs. Arguments)
لجعل دالتنا ذكية، نحتاج إلى طريقة لتمرير “المكونات” (البيانات) إليها. هنا نفرق بين مصطلحين في غاية الأهمية:

المعلمة (Parameter)


هي المتغير الذي يتم الإعلان عنه في تعريف الدالة. إنها مثل خانة فارغة في وصفة تنتظر أن يتم ملؤها. هي تحدد نوع واسم المعلومة التي تتوقعها الدالة.
public void myMethod(String name) { … } // ‘name’ is a parameter.

الوسيط (Argument)


هي القيمة الفعلية التي يتم تمريرها إلى الدالة عند استدعائها. إنها مثل المكون الحقيقي الذي تضعه في الخانة الفارغة بالوصفة.
myMethod(“Alice”); // “Alice” is an argument.

ببساطة: المعلمة (Parameter) هي الخانة في الوصفة، والوسيط (Argument) هو المكون الذي تضعه في تلك الخانة.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

الفصل الثالث: العقد الملزم: أهمية الترتيب والنوع
عندما تعرّف دالة مع معلمات، فأنت تنشئ عقدًا أو توقيعًا (Method Signature). هذا العقد يحدد بدقة:
عدد المعلمات التي تتوقعها الدالة.
نوع كل معلمة.
ترتيب هذه المعلمات.
أي محاولة لاستدعاء الدالة بشكل يخالف هذا العقد ستؤدي إلى خطأ في الترجمة (Compilation Error). لا يمكنك إعطاء الطاهي ملحًا عندما يطلب سكرًا، أو إعطائه مكونين عندما يطلب ثلاثة.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

احترم العقد!


توقيع الدالة (اسمها وقائمة معلماتها) هو قانون صارم. يجب أن تتطابق الوسائط التي تمررها عند الاستدعاء مع المعلمات في التعريف من حيث العدد والنوع والترتيب تمامًا.

الفصل الرابع: الطاهي الخبير (دوال بمهام معقدة)
تظهر القوة الحقيقية للمعلمات عندما نبني دوالاً تقوم بمهام مفيدة وتجمع بين المعلمات وقيم الإرجاع. يمكننا الآن بناء “خبراء” رقميين يأخذون بيانات خام، يعالجونها، ثم يعيدون لنا نتيجة جاهزة.

اضغط على "تشغيل" لعرض النتيجة هنا.

رسائل النظام ستظهر هنا.

جاهز
السطر 1, العمود 1

في الكود calculate(5, 10);، ماذا يمثل الرقمان 5 و 10؟







ملخص الدرس: أنت الآن تتحدث لغة الدوال


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

الخطوات التالية


لقد نظمت كودك في دوال، وأصبحت تمرر البيانات إليها. ولكن، ماذا عن المتغيرات التي تعرّفها داخل هذه الدوال؟ وأين “تعيش” المعلمات التي تمررها؟ في الدرس التالي، سنغوص في مفهوم حاسم وهو “نطاق المتغيرات” (Variable Scope)، والذي سيجيب على سؤال “من يمكنه رؤية ماذا وأين؟”، مما يساعدك على تجنب أخطاء محيرة وفهم كيفية عزل البيانات داخل برنامجك.

🔐 سجل دخولك لحفظ التقدم

سجل دخولك لحفظ تقدمك والحصول على شهادة إتمام

تسجيل الدخول