الدوال ومكدس الاستدعاءات – المعاملات والقيم المعادة والنطاق
علوم الحاسوبالخوارزميات وحل المشكلات15–16 سنة
جارٍ التحميل…
سجّل الدخول للتشغيلنفّذ خطوة بخطوة برامج تستدعي إجراءات ودوال، وشاهد كل استدعاء يدفع إطارًا إلى المكدس: الوسائط المرتبطة بالمعاملات، والمتغيرات المحلية، والقيمة المعادة إلى سطر الاستدعاء. قارن بين المتغيرات المحلية والعامة، والتمرير بالقيمة والتمرير بالمرجع، والاستدعاء الذاتي بلغة Python أو بالشيفرة الزائفة. ويتيح وضع المكتبة استدعاء روتينات جاهزة لاستكشاف التواقيع ومفهوم التجريد.
الدرس: البرامج الفرعية: الإجراءات والدوال والمعاملات والنطاق
ماذا تعرض
البرنامج الفرعي كتلة من الشيفرة لها اسم ويمكن استدعاؤها مرات كثيرة. وعند استدعائه يدفع الحاسوب إلى المكدس إطارًا يحمل معاملاته ومتغيراته المحلية؛ فترتبط الوسائط بالمعاملات، ثم تعيد return قيمة وتسحب الإطار. والمتغيرات المحلية لا توجد إلا أثناء الاستدعاء، وقد تحجب متغيرات عامة لها الاسم نفسه. ويكدّس الاستدعاء الذاتي إطارات كثيرة للدالة نفسها. أما روتينات المكتبة فتخفي شيفرتها خلف توقيع، وبهذه الطريقة تُقسَّم البرامج إلى وحدات وواجهات برمجة تطبيقات (API).
طريقة الاستخدام
اختر «المثال» و«اللغة»، ثم اضغط «خطوة» لتنفيذ سطر واحد في كل مرة أو «تشغيل» لتشغيل البرنامج وفق «السرعة» المختارة. راقب مكدس الاستدعاءات، والملاحظات تحت «ما حدث في هذه الخطوة»، ومخطط عمق المكدس. اضغط «تحرير» لتغيير الشيفرة. انتقل إلى «روتينات المكتبة»، واختر «الروتين»، واكتب الوسائط، ثم اضغط «استدعاء».
المعاملات القابلة للتغيير
- الوضع تتبّع برنامج, روتينات المكتبة
- المثال المعاملات والقيم المعادة, المتغيرات المحلية والعامة, دوال تستدعي دوالًا, الإجراءات والدوال, الاستدعاء الذاتي (المضروب), التمرير بالقيمة والتمرير بالمرجع
- اللغة Python, الشيفرة الزائفة
- سرعة التشغيل 0.5–10 خطوة/ثانية
أسئلة للاستكشاف
- في الاستدعاء area(w, 3)، ما القيم التي هي وسائط وما الأسماء التي هي معاملات؟
- لماذا يظل print(count) في البرنامج الرئيسي يعرض 10 بعد تنفيذ double(3)؟
- كم إطارًا يكون على مكدس الاستدعاءات عندما يصل factorial(4) إلى الحالة الأساسية؟