انشاء اول برنامج لك بلغة البرمجة C
في هذا الشرح الثالث و تكملة للدروس او الدورة , سوف نتعلم انشاء اول برنامج بلغة C , لقد حضرنا الارضية و ادواة العمل اللازمة , الان حان الوقت للبرمجة .
نعم , في نهاية هذا الدرس سوف تتمكن من انشاء اول برنامج لك , حتى و ان كان الا بالابيض و الاسود و لا ينفع لشئ… , الا ان يقول لك صباح الخير 😅 .
وحدة التحكم “Console” أو النافذة؟
لقد تكلمنا بشكل سريعة عن ” برامج Console ” و ” برامج النوافذ ” في هذا الشطر مترجمنا IDE يطلب منا اي نوع نريد انشائه , اجيبك بسرعة سوف نستخدم ” برامج Console ” .
يجب ان تعلم انه يوجد نوعين من البرامج لا اكثر
- – برامج Console
- – برامج بالنوافذ
البرمجة بالنوافذ
هي البرامج التي يعرفها العامة , هذه الصورة تمثل برنامج بالنوافذ الجميع يعرفه
سؤال : ما هو شكل او ما هو اصلا برنامج وحدة التحكم ؟
برامج Console
ملا حظات
- – اليوم حتى على اللونيكس يمكن بث الالوان , لم يعد كل شئ بالابيض و الاسود
- – مثل هذه البرامج لا تعتني بالمستعمل سواء من شرح او طريقة العمل .
- – مثل هذه البرامج لا يستخف بها فهي قوية جدا ان كنت تعرف التحكم بها .
تكتب في Run الكلمة التالية cmd
![]() |
صورة لبرنامج console على الويندوز |
المقدمة: تعلم البرمجة بلغة C للمبتدئين : 1 مقدمة و شرح المفاهيم الاولية
نبداء بقليلا من code “الرموز البرمجية”
“كود الحد الأدنى” Minimum code الذي سوف نتعرف عليه الان , سوف يمثل القاعدة لاغلبية برامجك بلغة C .
طلب Minimum code من IDE
تعلم البرمجة بلغة C للمبتدئين : 2 الادوات اللازمة للبرمجة مع الشرح
لاحظ انه يوجد سطر فارغ في نهاية الكود , يجب الضغط على مفتاح Enter في لوحة مفاتيح الكمبيوتر بعد اخر حاضنة } لترك الفراغ , كل ملف في لغة C من الطبيعي ان ينتهي بسطر فارغ , ان لم تترك سطر فارغ الامر ليس اجباري لكن ال compiler قد يظهر لك رسالة تحدير (warning) .
تحليل Minimum code
انها عبارة عن سطور مميزة لا تكون الا في اعلى او بداية source code , هذه السطور يمكن تحديدها بسرعة لانها تبداء بعلامة دياز # , هذه الاسطر المميزة نسميها بتوجيهات المعالج Preprocessor directives , هي اسطر سوف يتم قرائتها من قبل برنامج اسمه ” Preprocessor ” المعالج , هذا البرنامج يبداء في العمل حين نقوم بعملة compilation .
بدون هذه الملفات الجاهزة كتابة رسالة على الشاشة سوف تكون عملية شبه مستحيلة لنا , الكمبيوتر في الاصل لا يعرف فعل شئ , يجب ان تامره و تعلمه بعمل كل شئ , نعم الكمبيوتر جاهل 😃 .
كل ما تراه نسميه دالة “function” , البرنامج بلغة C متشكل من حزمة دوال , و لا يحتوي الا على هذه الاشياء تقريبا , حاليا برنامجنا لا يحتوي الا على function واحدة .
– السطر الاول من function في الكود الذي امامنا يحتوي على كلمة هي في الحقيقة اسم ال function .
كل function لها بداية و نهاية معرفة بحاضنتين { } , دالة main موجودة بين حاضنتين , داخلها يوجد امامنا سطرين . سوف ننتقل الان الى تحليلها هي الاخرة .
هذه الاسطر داخل ال function لها اسم , نسميها تعليمات “instructions” ( كل هذه العباراة يجب حفظها عن ظاهر القلب لذلك نحاول استعمالها كثيرا في كل درس 😉)
كل instruction هي عبارة عن امر 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 ( دالة ) قد تم كتابتها من قبل , ادا هي كود جاهز و قد اخترعها مُبرمجين قبلك و هنالك الكثير من هذا القبيل في لغة البرمجة C .
سؤال : اين هذه function نحن لم نضع الا main في الكود و الباقي instruction ؟
هل تتذكر السطرين في البداية ؟
قلنا انه يمكن اضافة مكتبات ( Libraries ) في برنامجك , هذه المكتبات هي عبارة عن عدد ضخم من ال functions مخزنة فيها و جاهزة للاستعمال.
هذه المكتبات stdlib.h و stdio.h يمتلكان اغلب الدوال الاساسية التي نحتاجها في البرنامج الذي نعمل عليه , stdio.h بالتحديد تمتلك دوال لاظهار اشياء على الشاشة , مثل printf و ايضا تمتلك function اخرى للطلب من المستعمل القيام باعمال مثلا الكتابة على لوحة المفاتيح لادخال كلمة سر او شئ من هذا القبيل . سوف نرى هذا في ما بعد .
– ادا في fonction main نقوم باستدعاء fonction printf , دالة تنادي اخرى , في المثال main تنادي printf , سوف ترى ان هكذا تسير الامور دوما و انه امر طبيعي في البرمجة بلغة C , دالة معبئة بالاوامر تستدعي في وسطها الى دالة اخرى و هكدا .
– ادا الامر سهل لاستدعاء function نقوم بكتابة اسمها متبوع بقوصين ( )
– جميل لكن غير كافي على هذه الدالة , يجب توضيح ما سيظهر على الشاشة , لفعل هذا يجب اعطاء الدالة printf النص اللازم , قم بفتح علامات الاقتباس ” ” داخل القوصين , بداخل علامات الاقتباس اكتب النص مثال : “hello tehgeektools”
– لا تنسى المنقوطة في النهاية ابدا, هي تقوم بادلال ان ال instruction تنتهي في ذالك المكان لكي لا تختلط ببعضها البعض .
ادا لدينا 2 instructions التي تامر الكمبيوتر على هذا النحو
1 – اظهار” Hello Thegeektools” على الشاشة
2 – ال fonction main انتهت , اإرجاع 0 , البرنامج يتوقف .
اعد العملية بالكود الجديد
الى الدرس القادم