هذا الدرس يقوم بشرح المتغيرات المحلية local variables نظريا
سوف نتعرف فى على احد الموضوعات الهامة فى عملية البرمجة وهو مجال المتغيرات Variable Scope والمجال Scope عبارة عن مواضع او اجزاء الكود التي يمكن التعامل فيها مع المتغير بالاضافة الى العمر لهذا المتغير والعمر lifetime للمتغير هو وقت احتفاظ البرنامج بالمتغيرداخل الذاكرة المؤقته Ram ويمكننا تعريف المتغيرات داخل اى موضع بالكود سواء في اى موضع داخل البرامج الفرعية subroutines التي نقوم بإدراجها داخل الكود او فى الجزء general declaration وهو الجزء الذي نراه فى الجزء العلوي من صفحة الكود
ويعتمد المجال Scope المتاح للمتغير على حسب الموضع الذي يتم تعريف المتغير به وينقسم مجال المتغيرات الى نوعان النوع الاول هو المتغيرات المحلية local variables وهو عبارة عن المتغيرات التي يتم تعريفها داخل البرامج الفرعية subroutines وهذا النوع من المتغيرات يكون متاح للبرنامج الفرعي المعرف به المتغير فقط وذلك سميت بالمتغيرات المحلية local variables
اما النوع الثاني من المتغيرات هي المتغيرات العامة global variables ويتم تعريف هذا النوع من المتغيرات فى الجزء general declaration وهذا النوع من المتغيرات يكون متاح للنموذج بالكامل او للمشروع بالكامل ولذلك سميت بالمتغيرات العامة global variables واى متغير يتم تعريفه داخل اى برنامج فرعي او فى موضع بين جملتين private sub وEndsub يسمى متغير محلى
وهذا معناه ان المتغير متاح فقط داخل البرنامج الفرعي وبهذا فأنه عند محاولة استخدام هذا المتغير من اى بنرامج فرعي اخر فإن البرنامج سيظهر خط متعرج اسفل اسم المتغير دلالة على انه لا يستطيع التعامل مع هذا المتغير
ويجب ملاحظة انه بمجرد الخروج من البرنامج او انتهاء تنفيذ البرنامج الفرعي يتم حذف المتغير من الذاكرة وبالتالي لا يصبح له اى وجود ومن هنا نستنتج ان عمر المتغير المحلي ينتهي بأنتهاء تنفيذ البرنامج الفرعي المعرف به ومن هنا نرى ان مشكلة المتغيرات المحلية local variables تتمثل فى انه لا يمكن استخدام المتغير خارج البرنامج الفرعي المعرف به كما ان عمر هذا المتغير ينتهي بمجرد انتهاء تنفيذ البرنامج الفرعي
فعلى سبيل المثال نفترض انه يتم تعيين القيمة 0 كقيمة ابتدائية للمتغير عن انشائه وهذا يعني انه فى كل مره يتم تشغيل البرنامج الفرعي سيتم حجز مكان فى الذاكرة لهذا المتغير وتخزين القيمة 0 فى هذا المكان وعند انتهاء تنفيذ البرنامج الفرعي يتم حذف المتغير من الذاكرة