رمز فتح مرحلة هذا الدرس في تطبيق طورني : XVD

تَعلُمُ البرمجةِ للمبتدئينَ كلياً بواسطةِ #C –  المتغيرات الجزء الأول

المتغيرات Variables

السلامُ عليكم ورحمةُ اللهِ وبركاته، وأهلاً بكمْ في الدرسِ الثامن من دروسِ سلسلةِ، تَعلُمِ البرمجةِ للمبتدئينَ كلياً بواسطةِ السي شارب،  في البداية أحب أن أشارككم فرحتي، بحصولي على شهادة مطور معتمد من Unity، الشركة الرائدة في مجال تطوير الألعاب، من خلال محركها الشهير Unity، والذي يمكنك بواسطته تطوير ألعاب، لجميع أنواع المنصات المتوفرة حالياً، سواء للـ PC أو الـ Mobile، أو حتى الـ Consoles مثل PlayStation وغيرها، فالشهادة التي حصلت عليها، ستكون تعزيزاً لما هو معلن على منصة طورني، حيث ستكون السلسلة التالية لسلسلة البرمجة هذه، سلسلة تعلم أساسيات تطوير الألعاب باستخدام محرك الألعاب Unity، والتي أعدك أن تقضي أوقاتاً ممتعة فيها بإذن الله، في هذا الدرسْ سنتكلمُ عن مفهوم المتغيرات Variables، وكيف تقوم بحجز مكان مناسب لمتغيرك في ذاكرة الحاسوب، وكيف تقوم بإعطائه قيماً تستخدمها في تطبيقك، بالبداية دعنا ننظر إلى المعادلة الموجودة على الشاشة،

3 + x = 8

فإن قمت بدراسة مادة الحساب، فلابد أنك شاهدت مثل هذه المعادلة الحسابية، فإن طلبتُ منك أن تقوم بإيجاد قيمة x، فأنا متأكد أنك ستجيب من غير تردد أن قيمة المتغير x هي 5، بنفس التحليل الذي استخدمته في المعادلة السابقة، قم بالنظر الى الأسطر البرمجية الظاهرة على الشاشة:

x = 3;
y = x + 4;
Console.WriteLine(y);

بإستخدام الخبرة البرمجية التي تمتلكها، ستجد أن ناتج y سيكون الرقم 7، وهذا بالضبط ما سيتم طباعته على الـ Console،

المعادلات الرياضية :

كما تعلنا سابقاً عن لغة الـ C#، أنها لغة مفهومة للبشر، فالأسطر الظاهرة على الشاشة، مطابقة تماماً لما تعلمناه في المعادلات الرياضية، عدا عن أن هناك فاصلة منقوطة في نهاية كل سطر، وأصبحنا نعرف معناها بناءً على الدروس السابقة، وستجد نفسك خلال تقدمنا في الدروس القادمة، أنك في معظم الأحيان ستفهم الأسطر البرمجية، حتى قبل أن أقوم بشرحه لك.

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

 

أنواع البيانات  Variables Data Types :

ويمكن للمتغيرات أن تحتوي على قيم متنوعة، منها العدد الصحيح كما هو في مثالنا الحالي، ويمكن أن تحتوي على خانة واحدة فقط، ويمكن أن تحتوي على فقرات نصية طويلة، ويمكن أيضاً أن تحتوي على التاريخ والوقت، أو حتى أنواعاً جديدةً تقوم أنت بإنشائها، كما سنلاحظ في الدروس القادمة إن شاء الله. نعود لمثالنا حيث ستجد أن قيمة المتغيرات هي قيمة عددية، فقيمة المتغير x هي العدد الصحيح 3، وقيمة المتغير y هي حاصل جمع قيمة المتغير x، مضافاً إليها الرقم 4 ليصبح الإجمالي هو العدد الصحيح 7.

التطبيق الحالي نظرياً صحيح، لكنه غير مقبول لدى لغة الـ C#، لأننا لم نقم بحجز الصندوق الوهمي الخاص بكل متغير. تعرفنا في الدروس السابقة أنه بعد الـ Compile Process، سيقوم الـ .NET run-time بتنفيذها، ومن مسؤولياته الأساسية حجز مساحاتٍ كافيةٍ في الذاكرة، للمتغيرات التي قمنا باستخدامها بناءً على نوع قيمها، ففي مثالنا هنا يجب أن نخبر الـ Run-time، بضرورة حجز مساحة في الذاكرة للمتغيرين x,y، بما يتناسب مع حجم القيمة العددية لكليهما، كيف نقوم بذلك؟ هذا ما سوف نتعرف عليه معاً في هذا الدرس إن شاء الله.

حجز المتغيرات Variables Declaration :

لإنشاء مشروع جديد، سأقوم بتكرار ما قمنا به في الدروس السابقة، سأذهب إلى قائمة File — > New — > Project، ومن شاشة New Project سأحرص على اختيار Visual C#، ثم اختيار Console Application، سأقوم بعدها بإعادة تسمية هذا المشروع إلى Variables، ومن ثم نضغط على زر OK، ليبدأ برنامج الـ Visual Studio بتهيئة مشروعنا الجديد، ببناء الـ Solution والـ Project بالهيكلية التي تعرفنا عليها في الدرس السابق، وسأجد ملف Program.cs ظاهر في وسط الشاشة، حيث يمكنني البدء بكتابة الأسطر البرمجية، بين الأقواس الموجودة في السطر 12 والسطر 14.

أنوه أن كل الملاحظات التي ذكرتها في الدروس السابقة، يمكنك تطبيقها متى شعرت بعدم وصول المعلومة، قم بإيقاف الفيديو وكرره متى احتجت لذلك، خذ وقتك حتى تتمكن من تطوير مهارة تمييز الفروقات، سواءً حالة الحروف الصغيرة Small Letter أو الكبيرة Capital Letter، أو بالفروقات بين علامات الترقيم والفواصل والمسافات، التي سنستخدمها خلال كتابتنا الأسطر البرمجية، قم بتطوير مهارة المطابقة بين ما أقومُ بكتابتهِ على شاشتي، وبين ما تقومُ أنتَ بكتابته على نسختك من برنامج الـ Visual Studio، وفي حال ظهور خطوط حمراء متعرجة تحت الجمل، قم بالتحري بطريقتك الخاصة لاكتشاف حلٍ لهذا الخطأ.

لحجز مكان يتناسب مع نوع المتغير في الذاكرة، نحن بحاجة لإخبار الـ Compiler بفعل ذلك، وعملية الحجز هذه تسمى Variables Declaration، أي أننا سنخبر الـ .NET Run-time، بحجز مساحة كافية في ذاكرة الحاسوب، من خلال تحديد إسم ونوع لهذا المتغير، كما سأقوم بكتابته الآن:

int x;
int y;

في السطرين السابقين سألنا الـ .NET run-time، أن يقوم بحجز مساحة للمتغيرين x وy، من النوع int وهي إختصار لكلمة Integer أي عدد صحيح، والعددُ الصحيحُ هو مصطلحٌ في علم الرياضيات، يمثل العدد الكامل الذي لا كسور عشرية فيه، فمثلاً الرقم 5 هو رقم صحيح، لكن الرقم 5.6 هو رقم غير صحيح لأنه يحتوي على رقم بعد الفاصلة العشرية، بالإضافة إلى أن النوع Integer في لغة الـ C# يمثل الأعداد الصحيحة، فإن القيمة يجب أن تكون بين سالب بليونين وكسور، وموجب بليونين وكسور، وهذا حجم القيمة التي يتم حجزها في الذاكرة لهذا النوع، أما في حال كنا نحتاج أن نتعامل مع رقم أكبر من القيم السابقة، فنحن نحتاج إلى نوع غيرِ نوعِ العدد الصحيح Integer، وسنتعرف على الأنواع الأخرى لاحقاً إن شاء الله.

مثال عملي على المتغيرات Variables :

بعد الـ Variables Declaration، دعنا نقوم بإكمال كتابتنا للأسطر البرمجية كما في المثال أول الدرس،

x = 3;
y = x + 4;
Console.WriteLine(y);
Console.ReadLine();

لنتمكن من مشاهدة النتائج قبل خروج البرنامج بسرعة. إن قمنا بتنفيذ التطبيق سنجد أن المخرجات هي نفسها التي توقعناها سابقاً، كما نشاهد الآن على الشاشة أننا حصلنا على قيمة 7. إن لم تحصل على هذه القيمة، قم بإيقاف الفيديو وتتبع ما قمتُ بكتابته لتتأكد من صحةِ ما قمتَ أنت بكتابته.

الآن بعد ما قمنا بحجز المتغيرات في السطر رقم 13 و14، قمنا في الأسطر 16 و17 بإسناد قيم للمتغيرات، باستخدام إشارة المساواة =، وهذه الإشارة تسمى Assignment Operator، وسنتعرف على حالات خاصة منها في دروس متقدمة إن شاء الله. وإشارة المساواة تقوم بأخذ كل ما على الجانب الأيمن وتضعه في الجانب الأيسر،

وتطبيق ذلك على مثالنا هنا، يمكننا القول، أعطني قيمة 3 وضعها في المتغير الذي اسمه x، وبالمثل في السطر التالي، نقوم بإضافة قيمة إلى المتغير y، عدا أننا نقوم بشيء إضافي هنا، ألا وهو استدعاء قيمة المتغير x أولاً، فنحن نسأل الحاسوب أن يقوم بالبحث عن موقع المتغير x في الذاكرة، ثم نقوم بأخذ قيمته وجمعها مع الرقم 4، ليتم إسناد القيمة الكلية إلى المتغير y. وفي السطر رقم 19، نقوم بطباعة قيمة المتغير y، على شاشة الـ Console من خلال استدعاء موقعه في الذاكرة.

لتأكيد ضرورة حجز المتغيرات قبل استخدامها، سأقوم بتحويل السطر الذي يحتوي على تعريف المتغير x إلى سطر ملاحظة، تعلمنا أنه لفعل ذلك يلزم إضافة double slash // إلى بداية السطر،  بعد فعل ذلك، سنلاحظ ظهور خطوطٍ حمراءَ متعرجة، تحت المتغير في السطر رقم 16 والسطر رقم 17، وإن قمت بوضع مؤشر الفأرة على موضع الخطأ ستجد رسالة:

The name x Does not exist in the current context

والتي تعني أن x غير معرّف، ولكنك لربما تقول:  لقد قمنا بتعريفه هذا المتغير وها هو في السطر رقم 13، لكن كما اتفقنا في درس سابق، أننا بتحويل سطر برمجي إلى جملة ملاحظة Comment Statement، فإننا نخبر مترجم لغة الـ C# والمعروف بالـ .NET run-time، أن يقوم بتجاهل هذا السطر تماماً وكأنه غير موجود.

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

 

مصطلحات الدرس :

Variables : المتغيرات هي صناديق وهمية تتواجد في ذاكرة الحاسوب تحتوي على قيم بأنواع معينة
Unity : محرك ألعاب بإمكانك تطوير ألعاب عليه سواءاً 2D أو 3D ويمكن تصديرها لكل المنصات مثل Android, iOS, Xbox,Playstation وغيرها
Compile process : عملية تحويل الأسطر البرمجية التي تقوم بكتابتها إلى تطبيق مخرجات ( EXE أو حسب نوع المشروع) يمكن نشره للزبائن.
Dot Net Run-time : المكون الرئيسي الذي يعتمد عليه برنامج Visual Studio ويتكون من العديد من الطبقات الخدمية
Project : المشروع الذي نقوم بتطويره ويكون تحت Solution واحد فقط
New : جديد
Console Application : تطبيق شاشة سوداء يقوم بطباعة أسطر متتالية وتتميز ببساطتها وقوة أداءها
solution : الحل البرمجي وهو أعلى وأكبر حاوية للمشروع، ويمكن أن يتكون من أكثر من Projects
Program : البرنامج أو التطبيق الذي تقوم بتطويره
Small Letter : الأحرف الإنجليزية الصغيرة مثل حرف t الصغير
Capital Letter : الأحرف الإنجليزية الكبيرة مثل حرف T الكبير
Variables Declaration : حجز مكان في ذاكرة الحاسوب يتناسب مع نوع المتغير
int : إختصار لـ Integer  أي عدد صحيح لا كسور فيه مثل 25
Console.ReadLine : دالة تقرأ جملة كاملة بشرط أن تنتهي بزر الإدخال Enter
Assignment Operator : علامة المساواة (=) وتقوم بإسناد قيمة ما على الطرف الأيمن إلى مكان ما على الطرف الأيسر
Double Slash : علامة ( // ) وتستخدم لتحويل السطر البرمجي إلى جملة ملاحظة
The name x Does not exist in the current context : الإسم ( x ) غير معرف في القطعة البرمجية الحالية
Comment Statement : جملة ملاحظة، وهي جملة لا يتم تنفيذها وتستخدم لشرح وظيفة الأسطر البرمجية

2 thoughts on “#8 المتغيرات Variables – البرمجة بواسطة #C

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *