13 - سلسلة تبسيط البرمجة – آلية المجال أو النطاق

السلام عليكم ورحمة الله وبركاته

بسم الله الرحمن الرحيم

تحدثنا في الحلقة الماضية عن المتغيرات و أنه بالإمكان تعريفها على أنها مكان في الذاكرة لحفظ قيم يمكن أن تتغير مع تقدم سير البرنامج

وعليه يجب أن يتم تعريف المتغير باسم لا يتشابه مع اسم متغير آخر في نفس المستوى أو المجال حتى لا يختلط الأمر على المترجم أيهما المقصود عند الطلب

تخيلو لو أنه في البيت الواحد يوجد شخصين بنفس الاسم ثم نادت الأم هذا الاسم

فلا شك أنه سيحصل التباس وكل واحد يحتار هل هو المقصود أم الثاني

ولهذا كان من الأفضل جعل الاسماء مختلفة لو حتى بأرقام

كأن تنادي أحمد الكبير أو أحمد1 أو أحمدالأسمر

وهكذا إننا نسمي المستوى الذي يكون الوصول فيه للمتغيرات واحدا أو متساوي بالمجال أو النطاق أو المدى (Scope)

فالمجال قد يكون ضيق وقد يكون على أوسع وقد يكون عام

فمثلا قبل قليل كان المستوى أو المجال أو النطاق هو الغرفة وقد يتوسع ليصبح البيت

وهنا لا مشكلة لو كان في البيت أحمد ومحمد وفي بيت الجيران أحمد ومحمد

لأنه عند استدعاء الاسم ضمن نطاقه فلن يختلط على أحد لأن الاستدعاء ضمن نطاق ليس فيه تشابه

ولكن تخيلو لو أن واحد على درج البناية والذي هو أوسع من البيت ثم نادى أحمد

فمن المقصود هل هو أحمد في المنزل الأول أم أحمد في المنزل الثاني أم الثالث أم من ؟

من هنا يجب عند معرفتنا مسبقا باستخدام المتحول أو المتغير ضمن نطاق أن يكون الاسم فريدا ضمن نفس النطاق

وقد يكون النطاق أوسع وأوسع تخيلو لو أنه تم المناداة من خلال مكبر صوت في وسط الشارع فقال : أحمد يأتي إلى المكان الفلاني

فالحارة مليئة بمن يحمل نفس الاسم فمن هو المقصود

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

كأن ينادي أحمد الذي يقطن البيت الخامس من البناية كذا يحضر إلى هنا

تصوروا في مثالنا في الدرس السابق عن المحاسب لو أنه يوجد صندوقي مال في مكتب المحاسب

فسيختلط الأمر على المحاسب أيهما الذي سيحسبه ولهذا إما أن يكون فريدا أو أن يتم تمييزه

كأن يقول المدير الصندوق الكبير أو الصندوق الفضي وهكذا

بينما لو كان هناك صندوق في غرفته وصندوق في غرفة المدير

فلا شك أنه سيفهم أن المقصود هو الذي في غرفته

نفس الأمر ينطبق على الثوابت لأنه خانات ذاكرية يتم استدعائها من خلال اسمها إلا أنها تتميز بأن قيمتها ثابتة لا تتغير

دمتم بأمان الله