تعلم البرمجة بلغة C للمبتدئين : 3 انشاء اول برنامج لك

انشاء اول برنامج لك بلغة البرمجة C

في هذا الشرح الثالث , تكملة للدروس و الدورة , سوف نتعلم انشاء اول برنامج بلغة C , لقد حضرنا الارضية و ادواة العمل الان حان الوقت للبرمجة .
نعم , في نهاية هذا الدرس سوف تتمكن من انشاء اول برنامج لك , حتى و ان كان الا بالابيض و الاسود و لا ينفع لشئ , الا ان يقول لك صباح الخير 😅 .


تعلم البرمجة بلغة C للمبتدئين : 3 انشاء اول برنامج لك

وحدة التحكم "Console" أو النافذة؟

لقد تكلمنا بشكل سريعة عن " برامج Console " و " برامج النوافذ " في هذا الشطر مترجمنا IDE يطلب منا اي نوع نريد انشائه , اجيبك بسرعة سوف نستخدم " برامج Console " .

يجب ان تعلم انه يوجد نوعين من البرامج لا اكثر
  • -  برامج Console  
  • - برامج بالنوافذ 

البرمج بالنوافذ

هي البرامج التي يعرفها العامة , هذه الصورة تمثل برنامج بالنوافذ لا يوجد من لا يعرفه 
تعلم البرمجة بلغة C للمبتدئين  3 انشاء اول برنامج لك

- اذا هذا برنامج بنوافذ , واعتقد انك ترغب في انشاء مثله .... لن تستطيع ذلك حاليا 😅 .
- طبعا انشاء برامج تعتمد على النوافذ امر ممكن جدا بلغة C , لكن لمبتداء في البرمجة ... الامر معقد قليلا .
- للبداية الافضل هو البرمجة على وحدة التحكم "Console" 

سؤال : ما هو شكل او ما هو اصلا برنامج وحدة التحكم ؟

 برامج Console

هي اول البرامج التي تم اختراعها , في ذلك الزمن الكمبيوتر لم يكن قادر الا على بث الابيض و الاسود , و لم يكن قوي كفاية لانشاء نوافذ مثل ما هو عليه الحال اليوم .
طبعا مر الوقت و تطور نظام " ويندوز" ( ترجمة كلمة windows  تعني نوافذ ) وقد صار الحاسوب قوي و سريع ايضا هو اليوم للاستعمال الواسع و العام , شهرة نظام ويندوز راجعة الى سهولته , نظام التشغيل ويندوز صار شائع لدرجة ان الاكثرية لا تعرف او نسية ما معنها برامج Console و كيفية التحكم فيها .

البرمجة بالكونسول لم تُفقد او انتهت , نظام التشغيل لونيكس Linux يعتمد الا على هذه الطريقة اليك صورة تمثيلية من البرنامج 

مُرعبة اليس كذلك !!؟ 😂 ... هذه نبدة فقط عن البرامج بالكونسول .

ملا حظات 
  • - اليوم حتى على  اللونيكس يمكن بث الالوان , لم يعد كل شئ بالابيض و الاسود 
  • - مثل هذه البرامج لا تعتني بالمستعمل سواء من شرح او طريقة العمل .
  • - مثل هذه البرامج لا يستخف بها فهي قوية جدا ان كنت تعرف التحكم بها .
مثل ما اشرنا اليه انشاء برنامج بهذه الطريقة سهل جدا و يمكن البداء بها , ايضا يمكن الان اضافة الالوان او وضع صورة خلفية .

سؤال : هل في الويندوز لا يوجد برامج console ؟

بالطبع موجودة , لكنها مخفية عن من لا يعرف كيف العمل بها و ما هي اصلا , يمكن راية هذا البرنامج بالتوجه الى 
Start / Accessories / Command Prompt او Start / Run تكتب في Run الكلمة التالية cmd  

صورة لبرنامج console على الويندوز
اعتقد ان الجميع من يتابع الدورة الان هو على الويندوز , اعلم ادا اننا سوف نقوم بانشاء شئ من هذا القبيل , ادا اخترنا هذا النوع من البرامج و المقدمة لم يكن لمجرد الكلام او لمماطلة , هي عبارات يجب تعلمها عن ظاهر القلب و ايضا البرمج بها هي القاعدة الاولية في عالم البرمجة , سوف تتعلم القواعد الاساسية من الصفر لكي تنتقل الى مرحلة البرمجة بالنوافذ , كن مطمئن حين يكون لنا المستوى في الدورة سوف ننتقل الى برمجة برامج اكثر تعقيد و اكثر نفع و اهمية .
تعلم البرمجة بلغة C للمبتدئين : 1 مقدمة و شرح المفاهيم الاولية

نبداء بقليلا من code "الرموز البرمجية" 

لا يهم اي نوع من البرامج  التي سوف نعمل عليه , اولا يجب ان تكتب القليل من code , هذا الكود لن يفعل شئ مخصص لكن يجب كتابته " ركز سوف تفهم " .

"كود الحد الأدنى" Minimum code الذي سوف نتعرف عليه الان , سوف يمثل القاعدة لاغلبية برامجك بلغة C .

طلب Minimum code من IDE 

من المترجم الذي تحدثنا عنه في الشرح او الدرس الثاني نقوم بانشاء مشروع جديد new project , ارجع الى الدرس السابق ان نسيت طريقة فعل ذلك .
تعلم البرمجة بلغة C للمبتدئين : 2 الادوات اللازمة للبرمجة مع الشرح

للتدكير من على Code::Blocks الذي سوف نستعمله في هذه الدورة menu File / New / Project , ثم تختار Console Application , بعدها تختار لغة C .
Code::Blocks يقوم بانشاء Minimum code بلغة C , الذي نحتاجه , هذا هو : 
لاحظ انه يوجد سطر فارغ في نهاية الكود , يجب الضغط على مفتاح Enter  في لوحة مفاتيح الكمبيوتر بعد اخر حاضنة }لترك الفراغ , كل ملف في لغة C من الطبيعي ان ينتهي بسطر فارغ , ان لم تترك سطر فارغ الامر ليس اجباري لكن ال compiler قد ان يشر لك برسالة تحدير (warning) .

لاحظ هذا السطر 
int main()
يمكن ان يكتب ايضا على الشكل التالي 
يمكن استعمال الاثنين لكن الثانية " المعقدة " هي الاكثر رواج لامور سوف نعرفها لاحقا , ادا سوف نستعملها اكثر في الدروس القادمة , في هذا الطور من الدورة ان نستعمل الاول او الثاني لا يغير شئ لنا .

تحليل Minimum code

هذا الكود الصغير الذي تراه امامك اعلم انك لا تفهم فيه شئ , لكن هذه السطور القليلة هي برنامج Console الذي بامكانه بث رسالة على شاشتك , يجب ان نتعلم قرائة كل هذا .

نبداء بالسطرين الاولين المتشابهين كثيرا 
انها عبارة عن سظور مميزة لا تكون الا في اعلى  او بداية Source files او source code , هذه السطور يمكن تحديدها بسرعة لانها تبداء بعلامة دياز # , هذه الاسطر المميزة نسميها بتوجيهات المعالج Preprocessor directives , هي اسطر سوف يتم قرائتها من قبل برنامج اسمه " Preprocessor " المعالج , هذا البرنامج يبداء في العمل حين نقوم بعملة compilation .

- الشرح في الدرس الاول , لم يكن الا رسم تبياني مُبسط من ال compilation , في الحقيقة حين القيام بهذه العملية هنالك العديد من الامور التي تحدث , سوف نتطرق اليها بالتفصيل لاحقا , الان عليك فقط باضافة هذه السطور في اول ملفاتك .

- نعم لكن الجميع يريد معرف مذا تعني ... طيب .

كلمة include  بالانجليوية تعني تضمين , هذه الاسطر تطلب بتضمين او اضافة ملفات اخرى الى مشروعك او كود برنامجك , بمعنى اصح اضافة ملفات الى عملية ال compilation .

يوجد سطرين اذا هنالك ملفين , هي stdio.h و stdlib.h , هذه الملفات موجد من قبل , ملفات source جاهزة , سوف نتعرف عليها و تسمستها الحقيقية هي المكتبات " Libraries " , بشكل بسيط هي ملفات جاهزة تحتوي على كود يسمح باظهار رسالة على الشاشة .
بدون هذه الملفات الجاهزة كتابة رسالة على الشاشة سوف تكون عملية شبه مستحيلة لنا , الكمبيوتر في الاصل لا يعرف فعل شئ , يجب ان تامره بعمل كل شئ و تقوده , نعم الكمبيوتر جاهل 😃 .

خلاصة هذه الاسطر سوف تضيف مكتبات جاهزة تسمح لنا باظهار رسالة على الشاشة 

ننتقل الى الاسطر المتبقية 
كل ما تراه نسميه وظيفة "function" , البرنامج بلغة C متشكل من حزمة وظائف , و لا يحتوي الا على هذه الاشياء تقريبا , حاليا برنامجنا لا يحتوي الا على function واحدة .

function هي في حد داتها تسمح بجمع عدة اوامر للكمبيوتر في ملف , هذه الاوامر او الوظائف تسمح بعمل شئ معين , مثلا يمكننا انشاء function  فتح الملف Open_file , التي سوف تحتوي على رزمة من الاوامر التي تشرح او تامر للكمبيتر طريقة العمل لفتح الملف .

الامر الجميل و المفيد في ال function  هو بعد ان تنشاها و تشرح له طريقة عمل فتح الملف لن تطر الى اعادتها و سوف تكتب فقط Open_file لينفد الكمبيوتر الامر مباشرة لانه تعرف على ما تريده من هذه العبارة مسبقا .

بدون الدخول في التفاصيل لاننا سوف نرجع اليها لحقا ( الوقت لا يزال مبكر على مثل هذه الامور) .

 نرجع الى التحليل
- السطر الاول من function  في الكود الذي امامنا يحتوي على كلمة هي في الحقيقة اسم ال function  .

نعم اسم ال function  في الكود الذي تراه هو main , هذه ال function المميزة  تعني حرفيا "أساسي او أولي" , main  هي ال function  الاساسية لبرنامجك هذا .

كل function لها بداية و نهاية معرفة بحاضنتين {  } , كل function  main موجودة بين حاضنتين , داخلها يوجد امامنا سطرين . سوف ننتقل الان الى تحليلها هي الاخرة .

هذه الاسطر داخل ال function لها اسم , نسميها تعليمات "instructions" ( كل هذه العباراة يجب حفظها عن ظاهر القلب لذلك نحاول استعمالها كثيرا في كل درس 😉)
كل instructions هي عبارة عن امر Order للكمبيوتر , كل سطر منها تامر الكمبيوتر بفعل شئ محدد .

مثل ما اشرنا اليه في الاعلى , حين نجمع ال instructions داخل ال function سوف نقوم بانشاء 'اهداف او عمل البرنامج الجاهزة " لا شئ يمنعنا من انشاء function مثل open_file , او حتى انشاء function تحريك اللاعب في لعبة فيديو .
البرانامج في نهاية المطاف ما هو الا مجموعة من instructions " افعل هذا او ذاك " , تامر الكمبيوتر و هو ينفد .

ملاحظة مهمة : كل instruction تنتهي بمنقوطة semicolon " ; "  اصلا بالاعتماد على المنقوطة نفرق ما هو instruction او لا دا خل الاكواد , لو انك تنسى وضع منقوط في نهاية اي instruction لن تتم عملية ال compilation .

السطر الاول printf("Hello world!\n");  يطلب من الحاسوب اظهار رسالة Hello world على الشاشة , ادا حين يصل برنامجك الى هذا السطر سوف يقوم باظهار هذه الرسالة على الشاشة , ثم يمر الى instruction  التي بعدها .

السطر الثاني return 0; , تعني نهاية عمل البرنامج , بمعنى نهاية function  main , و يطلب منه للرجوع الى value قيمة 0 .

سؤال : لماذا البرنامج يرجع الى value صفر ؟

في الحقيقة كل برنامج حين ينتهي يرسل قيمة , مثلا للقول ان كل شئ تم بطريقة جيدة يرسل 0 , و اي قيم اخرى تعني خطاء , في اغلب الاحيان هذه القيمة غير مستعملة  لكن يجب وضعها , حتى و ان كان برنامجك يشتغل من دونها لكن الافضل و لاخد الامر بجدية و احترافية يجب وضعها .

- انتهينا من تحليل ال Minimum code , بضعت اسطر فقط تطلبت منا مجهود لمعرفة اهدافها ... الامر يبدو معقد 😅 لا ابدا .

- فعلا لم نتطرق الى كل شئ بالتفصيل و بشرح مُعمق , و اعتقد ان لكم اسئلة كثيرة معلقة , اطمئنوا كل تسائلاتكم سوف تلقى الاجابات رويدا رويدا , لا يمكنني اطلاعكم على كل شئ دفعة واحدة . سوف تجدون صعوبة للاستيعاب .

ان كنت غير قادر على حفظ كل هذا الدرس مرة واحدة لا شئ يدفعك لفعل هذا مرة واحدة , يمكنك الارتياح من القرائة و تغير الجو , يمكن ان تجدد عزيمتك بعد القليل من الراحة و اعادة ما لم تستطع استيعابه , كل ما تطرقنا اليه في هذا الدرس اساسي و يجب فهمه جيدا لمتابعة الدورة .

اليك رسم تبياني مبسط لكل تطرقنا اليه

تجربة البرنامج 

التجربة سوف تمر بسرعة البرق , كل ما عليك فعله هو جمع compile المشروع project , ثم تشغيله ( Build & Run ) انقر على هذه الخانة لفعل الاثنين معا في مترجم Code::Blocks .


ان لم تقم بالحفظ سوف يطلب منك حفظ المشروع , الحفظ امر ضروري و عادة يجب ان تكسبها في اللاشعور , لكي لا تفقد عملك بسبب خطاء او انقطاع التيار الكهربائي ... الخ , انقر على yes للخفظ حين ظهور الرسالة .

ملاحظة 
لو انه لم يحدث شئ بعد الضغط على خانة Build & Run و تلقيت الخطاء
 My-program - Release  uses an invalid compiler. Skipping... Nothing to be done
هذا يعني انك حملت نسخة Code::Blocks  بدون mingw , ارجع الى موقع Code::Blocks و كما حددنا في الشرح السابق قم بتحميل النسخة التي تحتوي على mingw  .

 انتضار compilation " وقت طوييييل , لا امزح فقط " سوف يظهراول برنامج لك , نعم حقيقة امام اعينك اول برنامج تنشائه في حياتك " لحظات تاريخية 😄 "

- البرنامج يُظهر Hello world!  في السطر الاول  .
- الاسطر الباقية تم عملها من قبل المترجم Code::Blocks , و تشير الى ان البرنامج اشتغل بنجاح , و المدة الزمنية التي استغرقها في العمل بعد الانطلاق .
- في السطر الاخير يطلب منك الضغط على اي مفتاح من لوحة مفاتيح الكمبيوتر لاغلاق البرنامج .

نعم اعلم .... حين تضغط على اي زر ينغلق البرنامج ,  الامر ليس مدهش , و لا يثير الاعجاب 😢 , لكن يبقى انه اول برنامج لك في عالم البرمجة , لحظة سوف تتذكرها طول حياتك .... 😵 .

كتابة رسالة على الشاشة 

الان سوف نقوم "بانفسنا" عمل تغيرات على هذا الكود او البرنامج .
مهمتك لو تقبلها " ايحاء الى فيلم مهمة مستحيلة 😄"  هي : اظهر رسالة hello ثم اسمك مثلا hello thegeektools على الشاشة .
مثل ما حصل حين التشغيل تنبثق console و يظهر فيها رسالة "hello thegeektools" هذه المرة .

سؤال : كيف نفعل لاختيار النض الذي يظهر على الشاشة ؟

- الامر سهل , لو انك ترجع الى الكود الذي نعمل عليه Minimum code , يمكنك فقط تغير عبارة Hello world! بالعبارة التي نريدها , في السطر الذي يكون به printf .
- مثل ما عرفناه printf هي عبارة عن instruction , تامر الكمبيوتر باظهار الرسالة .
- لكن !!  للعلم ان printf هي في الاصل function وظيفة قد تم كتابتها من قبل ادا هي كود داهز و قد اخترعها مُبرمجين قبلك  .

سؤال : اين هذه function نحن لم نضع الا main في الكود و الباقي instruction  ؟

هل تتذكر السطرين في البداية ؟
قلنا انه يمكن اضافة مكتبات Libraries في برنامجك , هذه المكتبات هي عبارة عن عدد ضخم من ال function مخزنة فيها و جاهزة   للاستعمال.
هذه الملفات stdlib.h و stdio.h يمتلكان اغلب الوظائف الاساسية التي نحتاجها في البرامج الذي نعمل عليه , stdio.h بالتحديد تمتلك وظائف لاظهار اشياء على الشاشة , مثل printf و ايضا تمتلك function اخرى للطلب من المستعمل القيام باعمال مثلا الكتابة على لوحة المفاتيح لادخال كلمة سر  او شئ من هذا القبيل . سوف نرى هذا في ما بعد .

- ادا في fonction main نقوم باستدعاء fonction printf , وظيفة تنادي اخرى , في المثال main تنادي printf , سوف ترى ان هكذا تسير الامور دوما و انه امر طبيعي في البرمجة بلغة C , وظيفة معبئة بالاوامر تستدعي في وسطها الى وظيفة اخرى و هكدا .

- ادا الامر سهل لاستدعاء function نقوم بكتابة اسمها متبوع بقوصين ( )
- جميل لكن غير كافي على هذه الوضيفة , يجب ادلال ما سيظهر على الشاشة , لفعل هذا يجب اعطاء الوظيفة printf النص اللازم , قم بفتح علامات الاقتباس " " داخل القوصين , بداخلها علامات الاقتباس اكتب النص مثال : "hello tehgeektools"
- لا تنسى المنقوطة في النهاية ابدا, هي تقوم بادلال ان ال instruction تنتهي في ذالك المكان لكي لا تختلط ببعضها البعض .

الان سوف يصبح معنا كود Source code على هذا الشكل 

ادا لدينا 2 instructions التي تامر الكمبيوتر على هذا النحو
1 - اظهار" Hello Thegeektools" على الشاشة
2 - ال fonction main انتهت , اإرجاع 0 , البرنامج يتوقف .

اعد العملية بالكود الجديد 


 مبروك الان صرت تتحكم في النص , في الدرس القادم سوف نتطرق الى التحكم اكثر في الشئ الذي يظهر على الشاشة و كيفية ظهوره مثل وضع الفراغات تنسيق و ما شبه .

الى الدرس القادم

qwetq

مدونة تجيك تكنولوجي : مدونة تقنية متواضعه بها عدد كبير من المواضيع الحصرية والمثيرة فى كثير من المجالات مديرها حمزة محمد عمري 17 سنة وطنى الاردن ولكن مقيم فى مصر بلدي الثانيه اعشق التدوين والتقنية .

ليست هناك تعليقات:

إرسال تعليق

اكتشف آخر الأعمال والخدمات التي أقدمها على خمسات