شرح المفهوم
يساعدك هذا الدرس على التعرف على أصغر برنامج C++ كامل: تضمين ملف رأسي (header)، تعريف الدالة `main`، طباعة مخرجات، وإرجاع قيمة. الهدف ليس السرعة أو البراعة بعد. الهدف هو التعرف على بنية برنامج يتم تجميعه (compiles) بشكل نظيف ويعمل تمامًا كما هو متوقع. بحلول النهاية، يجب أن تكون قادرًا على فتح ملف، كتابة برنامج C++ صغير يدويًا، بنائه (build)، تشغيله (run)، وشرح ما يفعله كل سطر.
أين تضع الكود
- ابدأ بالمتغيرات والمدخلات. اجعل التضمينات (includes)، ودالة `main`، وأنواع البيانات صريحة.
- أضف منطق المعالجة في القسم الأوسط.
- اختتم بالمخرجات والتحقق السريع.
مرجع الأوامر
- جمّع الملف، شغّله، وتأكد من ظهور سطري الإخراج في الطرفية.
- أشر إلى كل جزء مطلوب من البرنامج: `#include`، `main`، عبارة الإخراج، و`return 0;`.
- غيّر رسالة واحدة، أعد البناء، وتحقق من أن الملف التنفيذي يعكس تعديلك.
- اجعل المثال الأول صغيرًا بما يكفي لتتمكن من إعادة كتابته من الذاكرة دون نسخ.
دليل خطوة بخطوة
- أنشئ ملف مصدر مثل `lesson1.cpp` واكتب المثال تمامًا كما هو موضح.
- ابنِ البرنامج باستخدام المترجم الخاص بك وشغّل النتيجة مرة واحدة قبل إجراء أي تغييرات.
- عدّل سطر إخراج واحد لطباعة رسالتك الخاصة، ثم جمّع وشغّل مرة أخرى.
- تحقق من أن الأقواس المتعرجة (braces)، والفواصل المنقوطة (semicolons)، و`main` كلها في مكانها الصحيح.
- اختتم بشرح في جملة واحدة لماذا يحتاج كل برنامج C++ إلى نقطة دخول واضحة.
تمارين تطبيقية
- اكتب نسخة مختلفة تطبع اسمك وسببًا واحدًا لتعلمك C++.
- أنشئ نسخة ثانية تطبع ثلاثة أسطر منفصلة بدلاً من سطرين.
- أعد بناء البرنامج بعد إدخال خطأ صغير واحد، ثم أصلحه ولاحظ ما أبلغ عنه المترجم.
تحديات برمجية
- اكتب البرنامج الكامل مرة أخرى من الصفر دون النظر، ثم قارنه بالأصل.
- اجعل المخرجات أكثر أناقة قليلاً مع الحفاظ على البرنامج قصيرًا ومناسبًا للمبتدئين.
مهام تمرين صغيرة
- أعد تسمية الملف وقم ببنائه مرة أخرى بنجاح.
- أضف سطر `std::cout` إضافيًا واحدًا وأعد تشغيل الملف التنفيذي.
- اكتب ملخصًا من سطر واحد لما يثبته هذا البرنامج الأول.
خطأ شائع
Skipping input validation or mixing logic/output in one unstructured block.
تحدٍ مصغّر من الواقع
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.