post

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

رمز فتح مرحلة هذا الدرس في تطبيق طورني : 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 : جملة ملاحظة، وهي جملة لا يتم تنفيذها وتستخدم لشرح وظيفة الأسطر البرمجية

post

#7 ملفاتُ المشروعِ Project Files – البرمجة بواسطة #C

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

تَعلُمُ البرمجةِ للمبتدئينَ كلياً بواسطةِ #C –  ملفات المشروع ومخرجاته

 >>>تحميل مشروع الدرس<<<

هيكلية المشروع

السلامُ عليكم ورحمةُ اللهِ وبركاته، وأهلاً بكمْ في الدرسِ السابعِ من دروسِ سلسلةِ، تَعلُمِ البرمجةِ للمبتدئينَ كلياً بواسطةِ السي شارب، في هذا الدرسْ سنتكلمُ عن كيفيةِ تنظيمِ ملفاتِ العمل، وكيفَ أنَّ البرنامجَ يقومُ بتنظيمها، تحتَ مشروعْ Project وتحتَ Solution، وسنتعرفُ أيضاً على كيفيةِ إيجادها على الـ Hard Disk Drive، وسنشاهدُ لمحةً عن محتوياتِ هذهِ الإعدادات. فعندما نقومُ بإنشاءِ مشروعٍ جديد، يقومُ برنامجُ الـ Visual studio تلقائياً بتهيئةِ المشروع، حيثُ يقومُ بإنشاءِ جميعِ الإعداداتِ والملفاتِ والمصادرِ المهمة، الخاصةِ بالنوعِ الذي اخترناه، فإعداداتِ مَشروعِ الـ Web Development، تختلفُ عنْ إعداداتِ مشروعِ الـ Console، وهكذا.

 

نافذة Solution Explorer

حيثُ أنَّ أهمَّ ملفٍ في مشروعنا الأولِ هو ملفُ Program.cs، الذي نراهُ في وَسطِ الشاشة، فإذا نَظرتَ إلى القِسمِ الأيمنِ مِنَ الشاشة، ستجدُ قائمةَ Solution Explorer، تحتوي على كافةِ عناصرِ المشروعِ، وهذهِ القائمةُ تعتبرُ أهمَّ نَافذةٍ بعدَ مُحررِ النصوص، وستلاحظُ أنَّ هناكَ ملفاً يحمل الاسم Program.cs، وهوَ الملفُ الذي قمنا بكتابةِ أسطُرِنا الأولى عليه، حيثُ إنْ قمتَ بإغلاقِ شاشةِ الملفِ الموجودِ في وسطِ الشاشة، يمكننا فتحهُ منْ جديدٍ بالضغطِ على اسمهِ في قائمةِ المشروع. وستلاحظُ أنَّ الـ Solution الخاصَّ بنا، يحتوي على Project واحدٍ فقط، واسمُهُ HelloWorld وأنهُ مِنَ النوعِ #C، وبإمكانكَ إضافةُ عِدةِ مشاريعٍ تَحتَ Solution واحد، فالـ Solution هُوَ الحاويةُ لجميعِ المشاريعِ المترابطةِ ببعضها، وهوَ أكبرُ مِنَ المشروعِ Project، فإن قمنا مثلاً بالضغط على اسمِ الـ Solution بالزرِّ الأيمن، واخترنا Add –> New Project، سنتمكنُ مِنْ إضافةِ مشروعٍ جديد، مع إمكانيةِ تغييرِ نوعِ المشروعِ الجديدِ بلْ حتى تغييرَ لُغةِ بَرمجته.

 

مجلد ملفات المشروع

بَعدَ التعرُفِ على نافذةِ الـ Solution Explorer، لعلكَ تتساءلُ حولَ مكانِ ملفاتِ هذا المشروعِ على الـHDD ، ولمعرفةِ ذلكَ يجبُ عليكَ تَذكُرُ مَسارِ المشروع، وهُوَ المكانُ الذي قمنا باختيارِهِ عِندَ إنشاءِ المشروع، حَيثُ لو تَذكرْ أننا قُمنا في مَشروعنا الأول، باختيارِ إنشاءِ مُجلدِ المشروعِ في المسارِ الافتراضيِّ للبرنامج، ألا وهوَ مُجلدُ My Document الموجودُ في جهازنا، ولو قُمنا بالذهابِ هناك،  ستجدُ مجلداً باسمِ البرنامجِ مَعَ رَقمِ إصداره، كما هو ظاهِرٌ عنديْ هنا: Visual Studio 2017 ، إن قمتَ بفتحهِ ستجدُ مجلداتٍ كثيرة، سنختارُ مُجلدَ Projects منها، لنَجِدَ مُجلدَ المشروعِ الخاصِ بنا،

وتَجدُرُ الإشارةُ هنا إلى أنهُ مِنَ الأفضل، أنْ تَقومَ بإنشاءِ مُجلدٍ خاصٍ يحتوي على كلِّ مشاريعك، حيثُ تَقومُ بفرزِ مَشاريعِكَ المستقبليةِ حَسبَ نوعها، والأفضلُ أنْ تضعُهُ في Drive غير الـ OS Drive، لضمانِ سلامتهِ في حالِ حُدوثِ أيِّ خَلَلٍ في نظامِ التشغيلِ الذي تمتلكه. أما الآنْ ولهدفِ الدراسةِ والتعلم، فلا بأسَ في وضعِ المشاريعِ في المكانِ الافتراضيِّ للبرنامج، وأيضاً سيكونُ المكانُ الذي ستقومُ بنقلِ المشاريعِ التي قمتُ بكتابتها، لتقارِنَها بتطبيقكَ في حالِ حدوثِ أيِّ مشكلةٍ عندك، حيثُ كما ذكرتُ في بدايةِ السلسلة، أني سأقومُ بإرفاقِ ملفاتِ العملِ مَعَ النسخةِ النصيةِ للدرس، ولكيْ تقومَ بفتحِ الملفِ يُمكننا أخذَ المثالِ التالي،  فبعدَ تَحميلِ الملفِ قُمْ بفكِ ضغطه،  وقمُ بوضعِ المجلدِ الناتجِ بجانبِ المشاريعِ الأخرى، وقم بالرجوعِ إلى البرنامج، ومنْ قائمةِ File –> Open –> Project/Solution، قُم باختيارِ المشروعِ المستهدف، وتأكدْ مِن فتحِ الملفْ .sln الخاصِ به، وسيظهرُ لكَ المشروعُ بملفاتهِ الرئيسية.

 

محتوى ملف المشروع

بالعودةِ إلى مُجلدِ المشاريع، ستجد مجلد HelloWorld ، الخاص بالـ Solution الذي قمنا بكتابتِه في تطبيقِنا الأول، بالدخولِ إليه ستجدُ ملفَ HelloWorld.sln وهو ملفُ المشروعِ الكامل، إن قمتَ بفتحِه بأيِ محررِ نصوص، مثلَ الـ Notepad ++،  ستجدُ أنهُ يحتوي على معلوماتٍ خاصةٍ بهيكليةِ المشروع، بالطبعِ لن نقومَ بتعديلِ أيِ شيءٍ هنا، لكن من بابِ الإحاطةِ بالشيء، أحببتُ أنْ أريكَ محتوياتِ هذا الملف، وبالمثلِ أيضاً إن قمتَ بالدخولِ إلى مجلدِ المشروعِ Project، سنجد ملفَ HelloWorld.csproj، وهو الملفُ الذي يحتوي على كافةِ إعداداتِ المشروعِ أيضاً، قم بفتحِه وستجدُ العديدَ من المعلومات، لن نقومَ بتعديلِ أيِ شيءٍ، ولكن من بابِ الإحاطةِ بالشيءِ أيضاً.

 

مخرجات المشروع

وأخيراً ستجدُ مجلداً يحملُ الاسمَ Bin، اختصاراً لكلمةِ Binary، وستجدُ جميعَ مخرجاتِ المشروعِ هنا، لأن عمليةَ البناء Process of Compilation،  تأخذُ أسطرَك البرمجيةِ المقروءةِ للبشر، وتقوم بتحويلِها إلى صيغةٍ مفهومةٍ للحاسوب. إن قمتَ بتصفحِ المجلدِ سنجدُ أن هناك مجلداً أخراً يحملُ الاسمَ Debug، ويظهرُ هذا المجلدُ في حالِ قيامِك بتنفيذِ التطبيقِ من داخلِ البرنامج، حيث أن هناك وضعيتين للمخرجات، الأولى هي وضعيةُ اكتشافِ الأخطاءِ Debug Mode، حيث يقومُ البرنامج ُببناء ِالتطبيق، وتخصيصِه لإمكانيةِ اكتشافِ الأخطاءِ ومتابعتِها، والوضعيةُ الثانيةُ هي وضعية ُالنشرِ Release Mode، وهي النسخة ُالنهائيةُ الجاهزةُ للتصدير، سنتكلم عن الوضعيتين أكثرَ في الدروس المتقدمة.

الآن عند الدخولِ إلى مجلدِ الـ Debug، ستجدُ أن هناك ملفاً تنفيذياً اسمُه HelloWorld.exe، وهو من النوعِ exe المختصرِ من Executable File، لو قمتَ بتشغيلِه ستجدُ نفسَ مخرجاتِ ما كان يظهرُ في داخلِ البرنامج. هذا الملفُ تقريباً يمكنك نقلَه لأيِ جهازٍ آخر، مع ملاحظةِ أنه نسخةُ Debug Version، فإنْ قمتَ بنقلِ هذا الملفِ إلى جهازِ صديقك، سيعملُ غالباً منْ غيرِ مشاكل، مَعَ مراعاةِ أنَّ هذا النوعَ خاصٌ بنظامِ التشغيلِ ويندوز.

ويجبُ التنويهُ هُنا، أنَّ هذهِ الأنواعِ تعتبرُ في بعضِ الأحيانِ خطرة، فتأكدْ مِنْ خُلوِ الملفِ مِنَ الفايروساتِ قبلَ فتحه، لأنَّ العديدَ منَ القراصنةِ يَستخدمونَ هذه الأنواع، لسهولةِ وخفةِ حجمها، ويُمكنكَ عَملُ Scan لهُ بواسطةِ أيِّ بَرنامجِ حماية، أو إستخدامِ موقع virustotal.com، في حالِ عِدمِ امتلاكِكَ لأيِّ برنامجِ حماية، كانتْ هذهِ لمحةٌ عنْ هيكليةِ الملفاتِ الخاصةِ بِكلِ مشروع، أتمنى أن تكونَ قدْ استفدتَ منها، أراكَ في الدرسِ التالي إن شاء الله.

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

Solution : الحل البرمجي وهو أعلى وأكبر حاوية للمشروع، ويمكن أن يتكون من أكثر من Projects

Project : المشروع الذي نقوم بتطويره ويكون تحت Solution واحد فقط

Hard Disk Drive : القرص الصلب ويسمى إختصاراً HDD والذي يحتوي على جميع ملفات النظام والمشاريع

Web Development : تطوير تطبيقات الويب ممثلة بصفحات الويب ومواقعه

Console : شاشة سوداء تطبع أسطر متتالية وتتميز بسهولتها وقوة أداءها

Program.cs : هو الملف الرئيسي الذي نقوم بكتابة أسطرنا البرمجية الأولى عليه ويحتوي على الدالة الرئيسية Main

Solution Explorer : نافذة تقوم بعرض جميع مكونان الحل البرمجي، من مشاريع ومكتبات ودوال

OS Drive : قرص ال HDD الذي يحتوي على نظام التشغيل Operating System

SLN : هو إمتداد الملف Extension  الخاص بالمشروع Solution

Process of Compilation : عملية تحويل الأسطر البرمجية التي تقوم بكتابتها إلى تطبيق مخرجات ( EXE أو حسب نوع المشروع) يمكن نشره للزبائن.

Debug : عملية إستكشاف الأخطاء

Debug Mode : نظام مخرجات ومعالجة يحتوي على معلومات إضافية من هدفها إستكشاف الأخطاء وإعطاء تقارير

Release Mode : نظام مخرجات نهائي يتم إرساله للزبائن مباشرة

EXE : ملف تنفيذي Executable File يعمل على نظام Windows

Virus Total : موقع إلكتروني يمكنك رفع ملفات لإستكشاف إن كانت تحتوي على برامج خبيثة؟

 

 

 

post

#4 كتابةُ التطبيقِ الأول – البرمجة بواسطة #C

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

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

بدء التطبيق العملي :

السلامُ عليكم ورحمةُ اللهِ وبركاته، وأهلاً بكمْ في الدرس الرابع من دروسِ سلسلةِ، تَعلُمِ البرمجةِ للمبتدئينَ كلياً بواسطةِ السي شارب، أو كما أحب أن أناديها بالسي شوربة، بعدَ المقدمةِ النظريةِ الثقيلةِ في المحاضراتِ السابقة، أنا متأكدٌ أنكَ متشوقٌ للبدءِ الفعلي بكتابةِ الأسطرِ البرمجية، فلقد جُبلنا على حُبِّ التطبيقِ العملي، بعيداً عنِ المعلوماتِ النظريةِ المملة، وفي هذا الدرسِ سنقومُ بكتابةِ برنامجٍ بسيط، يقومُ بطباعةِ جملةٍ بسيطةٍ على شاشةِ الـ Console،

تعريف الـ Console :

ويمكنُ تعريفُ الـ Console على أنه، شاشةٌ سوداءُ تقومُ بإظهارِ نصوصٍ على شكلِ أسطرٍ متتالية، وسيسألُ بعضكم: لماذا نستخدمُ الشاشةَ السوداءَ الـ Console؟ بدلاً مِن تطويرِ تطبيقاتٍ بواجهةٍ رسومية؟ الحقيقةُ أنَّ تطبيقاتِ الـ Console تتميزُ ببساطتها، ومناسبتِها لشرحِ أساسياتِ لغاتِ البرمجة، ولو أننا قمنا بالانتقالِ مباشرةً إلى الواجهاتِ الرسومية، ستجدُ العديدَ منَ الأمورِ الصعبةِ والمبهمة.

وهدفنا منْ هذا التَّطبيقِ، هو تعلمُ كيفيةِ كتابةِ الأسطرِ البرمجيَّةِ، لذلكَ لنْ أقومَ بتفسيرِ لماذَا قمنا بكتابتها، بلْ سأقومُ بالتركيزِ على كيفيةِ الكتابةِ بحدِّ ذاتِها، لأنها ستكونُ أساساً لكلِّ الأمثلةِ اللاحقةِ، الَّتي سنقومُ بكتابتِها معاً مستقبلاً، بالإضافةِ إلى أنَّنا سنتعلمُ في هذا الدرسِ أموراً، مثل:
– كيفيةُ إنشاءِ مشروعٍ جديدٍ وحفظِهِ.
– التعرفُ على النافذة المُخصصةِ لكتابةِ الأسطرِ البرمجيَّةِ.
– تعلمُ كيفيةِ تنفيذِ التَّطبيقِ والحصولُ على مخرجاتهِ.
– وسنتعلمُ ماذا نفعلُ إنْ واجهتنا مشكلةٌ في الأسطرِ البرمجيَّةِ؟ 

لذلكَ، لا تقلقْ إنْ لمْ تستوعبْ جزئيةً معينةً في هذهِ اللحظةِ؛ لأنَّ كلَّ الدروسِ اللاحقةِ ستتكفلُ بالردِّ على تساؤلاتِكَ الحاليةِ. سنغوصُ في بحرِ البرمجة، فهل أنتَ مستعدٌ لتعلمِ السباحةِ الآن؟

إنشاء مشروع جديد :

الآنَ قُمْ بفتحِ البرنامَجِ الذي اخترتهُ في الدرسِ السابق، ولا تقلق إن وجدتَ اختلافاً في واجهةِ البرنامَجِ عندكَ، لأنَّ الأساسياتِ الَّتي سنتعلمُهَا موحدةٌ في الجميع. ولكي نقومَ بإنشاءِ مشروعٍ جديدٍ، سنذهبُ إلى قائمةِ:

File –> New –> Project ،

حيثُ ستظهرُ لكَ نافذةٌ جديدةٌ بعُنوان New Project، بها قائمةٌ مِنَ الاختياراتِ قدْ تختلفُ منْ نُسخةٍ لأُخرَى، لكنْ ستجدُ بالتأكيد #Templets –> Visual C، بعدَها قمْ باختيارِ النَّوعِConsole Application ، وقمْ أيضاً بإعادةِ تسميةِ المشروعِ إلى  HelloWorld، لاحظ أني قمتُ باختيارِ اسمِ مشروعٍ مطابقٍ لوظيفته، وهذَا سيساعدُنِي لاحقاً في معرفةِ وظيفةِ هذا المشروعِ، وأنَا أوصِي شخصياً بهذهِ الطريقةِ في كُلِّ مشاريعِكَ المُستقبليةِ، لكي تتذكرَ منَ الاسمِ فقطْ، لِمَ قمتَ بكتابةِ هذا التَّطبيقِ. ولاحظْ أيضاً أنِّي قمتُ باستخدامِ حروفٍ كبيرةٍ، ببدايةِ كلِّ كلمةٍ من كلمات الاسم، وقمتُ بلصقِ الكلمتينِ معاً ولمْ أضعْ مسافةً بينَهما، وذلكَ لاستخدامِها لاحقاً في أمورٍ معينة. بعدَ ذلكَ سأقومُ بالضغطِ على زرِّ التأكيدِ OK، لتختفِي شاشةُ الأنواع، ويظهَرَ أمامَنا المشروعُ بمكوناتِهِ،

والمنطقةُ الأكثرُ اتساعاً في شاشةِ البرنامَجِ، هيَ المكانُ المخصصُ لكتابةِ الأسطرِ البرمجيَّةِ، حيثُ تمَّ إنشاءُ ملفٍ يحملُ الاسم program.cs ، يحتوِي على بعضِ الأسطرِ البرمجيَّةِ التي تمَّ إنشاءُهاً تلقائياً، لتساعدَنا في البدءِ الفعليِّ لكتابةِ مضمونِ التَّطبيقِ. حيثُ إنَّنا سنتجاهلُ مبدئياً كلَّ هذهِ السطورِ، إلا المنطقةَ الموجودةَ بداخلِ الأقواسِcurly braces  هنا، وتجدرُ الإشارةُ هنا أنَّهُ يجبُ التَّمييزُ بينَ أنواعِ الأقواسِ، فهناكَ :
الأقواسُ المربعةُ brackets،
وهناكَ الأقواسُ الحادةُangle brackets ،
وهناكَ الأقواسُ الدائريةُ Round brackets .

كتابة التطبيق الأول :

لكتابةِ الأسطُرِ البرمجيَّةِ سأقومُ بحجزِ مساحةٍ كافية، وذلكَ بالضغطِ على زِرَّEnter ، بعدَ نهايةِ القوسِ في السطرِ رَقَمِ اثني عشرَ، وسأبدأُ بكتابةِ الآتي: Console منَ الانتباهِ الحادِّ أنَّها تبدأُ بحرفٍ كبيرٍ، ولاحظْ ظهورَ نافذةٍ صغيرةٍ مساعدةٍ خلالَ كتابتِي، سأتجاهلُهَا الآنَ لكنْ لاحقاً ستصبِحُ أعزَّ أصدقاءِك، ثمَّ سأقومُ بإتباعها بالنقطةِ dot، وكتابةُ كلمةِ WriteLine ملتصقتينِ معاً، معَ الانتباهِ أيضاً إلى أنَّ حرفي الدبليو والإل سيكونانِ بحروفٍ كبيرةٍ، ثمَّ سأقومُ بفتحِ أقواسٍ دائريةٍ (Round brackets)، وانتبهْ هُنا إنَّنا نحتاجُ أقواساً دائريةً وليسَ أقواساً مُربعةً، وبداخلِ هذهِ الأقواسِ سأقومُ بإضافةِ علامَتَي تنصيصٍ ثُنائيةٍ “، وانتبه لاستخدامَ علامتي تنصيصٍ وليسَ علامةٌ واحدة، وسأقومُ بكتابةِ الجملةِ Hello World ، بداخلِ علامتيِّ التَّنصيصِ وليسَ في أيِّ مكانٍ آخرَ، وفي نهايةِ السطرِ سأقومُ بإضافةِ فاصلةٍ منقوطةٍ ( semicolon ; ) ، وسأقومُ بالضغطِ على زرِّEnter للانتقالِ إلى السطرِ التالِي وكتابةِ:

 Console.ReadLine(); 

ولضمانِ عدمِ ضَياعِ ما قُمنا بكتابتهِ، سنقومُ بحفظِ البرنامجِ منْ قائمةِ File –> Save All، أو بإمكانكَ الضغطُ على هذهِ الأيقونةِ ( شكل القرصين ). الآنَ سأطلبُ منكَ إيقافَ الفيديو، وكتابةَ السطرينِ السابقينِ، وأتمنَّى منكَ التَّأكدَ منِ استخدامِ حروفٍ كبيرةٍ في بدايةِ الكلماتِ، ونفسِ علاماتِ الترقيمِ والأقواسِ الَّتي استخدمتُها هنا.

تنفيذ التطبيق للحصول على المخرجات :

أنَا مُتأكدٌ أنَّكَ متشوقٌ لرؤيةِ نتيجةِ ما قُمنَّا بكتابتَه، ولفعلِ ذلكَ قمْ بالضغطِ على المُثلثِ الأخضرِ، الموجودِ في الأعلى بجانبِ كلمةِ Start، أو إنْ لمْ تجدْهُ لسببٍ ما يمكنُكَ الذَّهابُ إلى قائمةِ Debug –> Start Debugging، أو بإمكانِكَ الضغطُ على مفتاحِ F5 إنْ كنتَ منْ مُحبيّ الاختصاراتِ السَّريعةِ. بتنفيذِ التَّطبيقِ سنلاحظُ ظهورَ نافذةٍ سوداءَ، مكتوبٌ فِيها Hello World وتحتَهَا مُؤشرٌ يظهرُ ويختَفِي، وعندَ الضغطِ على زرِّEnter منْ لوحةِ المفاتيحِ، ستختفِي شاشةُ ال Console، وسيعودُ برنامجُ Visual Studio إلى شكلهِ السابقِ.

تهانينا لكَ، فلقدْ نجحتَ بكتابةِ تطبيقِكَ الأولِ. قُمْ الآن بطباعة جملةٍ تعرفنا فيها عن نفسك، وتضع فيها هواياتك، وشاركها معنا بهاش تاق #طورني، ولا تنسى أن تقوم بعمل Mention لحسابي الشخصي، لأقوم بالرد عليك، أراك في الدرس التالي إن شاء الله.

ملاحظة هامة : 

إن واجهتك مشكلة مفادها : Visual Studio cannot start debugging because the debug target ‘c:\XXXXXX’ is missing ، قم بالتأكد من أن مسار المخرجات صحيح وذلك بالذهاب إلى قائمة : Project > Properties > Build > Output path ثم بعد ذلك قم بالتأكد من أن ال main/entry للمشروع في نافذة Build > Configuration Manager تم إختيار عمل Build له، إذا لم يكن قد تم إختياره قم بوضع علامة صح عليه.

 

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

Console : شاشة سوداء تقوم بطباعة أسطر متتالية، تتميز ببساطتها وقوة بنيتها
File : ملف
New : جديد
project : مشروع
Templets : نوع مشاريع معد مسبقاً يحوي إعدادات خاصة
#Visual C : لغة #C المرئية
Console Application : تطبيقات من النوع Console
Hello world : هو أول مشروع يتم تعليمه في كل اللغات لسهولته، حيث تقوم بتعلم كيفية طباعة جملة
Program.cs : الملف الرئيسي الذي يتم بدء تنفيذ التطبيق منه
WriteLine : دالة تقوم بطباعة نص معين ثم النزول إلى سطر جديد
semicolon : الفاصلة المنقوطة ;
ReadKey : دالة تقوم بقراءة مدخلات من المستخدم، وتمنع تطبيقات الـ Console من الوصول إلى نهاية التطبيق والخروج دون رؤية النتائج
Save All : حفظ جميع الملفات التي تم تعديلها سابقاً
Start : بدء تنفيذ التطبيق وهي بمثابة تشغيله بعد إنهاء ترجمته
Debug : تصحيح الأخطاء
Start Debugging : بدء تصحيح الأخطاء
Mention : تنويه وذكر