تعلم لغة C++ ؟
إذا كنت مبتدئاً في البرمجة, يجب أن تدرس الخوارزميات قبل أن تبدأ مباشرةً بدراسة لغة C++, لأنك بحاجة لمعرفة مبادئ البرمجة قبل أن تتعلم أي لغة برمجة.
لا تقلق إذا لم يسبق لك أن تعلمتها لأننا شرحنا الخوارزميات من الصفر.يمكنك تعلم ذلك هنا .
نصيحة هامة
لا تحاول تعلم لغة C++ ما لم تتعلم الخوارزميات قبلها لأنك قد تواجه صعوبة كبيرة في فهم الكود أحياناً حتى لو كان الكود مشروح بتفصيل و سهل الفهم.
و قم بدراسة جميع الدروس بنفس الترتيب الموضوعين فيه لأننا شرحنا جميع الأفكار بشكل مترابط.
Do not try to learn C ++ unless you learn the algorithms before it, because you may have great difficulty understanding the code sometimes, even if the code is explained in detail and easy to understand. Study all the lessons in the same order that they are placed in them because we have explained all the ideas coherently.
ما هي لغة C++ ؟
C++ تكتب سي بلاس بلاس باللغة العربية و هي لغة برمجة تجميعية ( Compiled ) و كائنية ( Object Oriented ) تضم العديد من مميزات لغات البرمجة عالية المستوى ( High Level ) و منخفضة المستوى ( Low Level ) و هذا يعني أنك قادر على فعل ما تشاء بها.
هذه اللغة الرائعة مصممة لتعمل على جميع أنظمة التشغيل المعروفة مثل ويندوز, ماك, لينكس, إندرويد إلخ.. و هي تعتبر من أقوى و أشهر لغات البرمجة على الإطلاق و يطلق عليها "أم اللغات" نظراً لأنها لغة قوية و موجودة منذ زمن طويل .
تم بناء هذه اللغة بالأساس كتطوير للغة C من قبل Bjarne Stroustrup أثناء عمله في مختبرات Bell لتكون أطروحته في رسالة الدكتورا عام 1979.
من ذلك الحين و حتى وقتنا الحالي تم تطوير هذه اللغة بشكل مستمر و اخر إصدار رسمي لها هو C++ 17.
لا يوجد شعار رسمي للغة C++ و لكن في العادة و عند البحث عن دورات لتعلمها أونلاين فإنك تجدهم يستخدموا شعار يشبه التالي.
ماذا يمكنني ان أطور بلغة C++ ؟
لغة C++ تعتبر لغة عامة الهدف ( General Purpose ) مما يعني انها قادرة على بناء أي برنامج.
القوة الحقيقة لها تتجلى في المشاريع والبرامج الكبيرة مثل:
بناء و تطوير انظمة التشغيل ومن اشهر انظمة التشغيل المبنية بهذه اللغة Windows, Linux, MacOS, Android.
بناء و تطوير البرامج الكبيرة مثل برامج أدوبي ( مثل Photoshop و Premier ) و المتصفح Firefox.
بناء و تطوير الالعاب و من أشهر الألعاب التي طورت بهذه اللغة Counter Strike, MacOSDoom, Warcraft.
مميزات لغة C++ بالنسبة للمطورين
لها شعبية هائلة و هناك الكثير من المراجع لمن يريد تعلمها.
القدرة على التحكم باستخدام الذاكرة بشكل كبير.
خفيفة وسريعة وتستهلك موارد نظام أقل مقارنة بلغات مثل جافا وبايثون.
بالامكان تحويل كود مكتوب بلغة C لكود بلغة C++ بسهولة.
مميزات لغة C++ عن باقي لغات البرمجة
مفتوحة المصدر
لن تدفع أي مبلغ لتعمل على لغة C++, فهي مصدر مفتوح و مجانية و ستبقى مجانية مدى الحياة.خفيفة
تستطيع البرمجة بها حتى و لو كان حاسوبك ضعيفاً أو قديماً.البساطة
تعلمها سهل جداً بعد أن تفهم برمجة الكائنات.سرعة الترجمة
تتم ترجمة لغة C++ إلى أوامر يفهمها الجهاز بشكل سريع جداً.لغة كائنية ( Object Oriented )
مع أن لغة C++ صممت لتكون قريبة من عتاد الجهاز و قريبة للغات منخفضة المستوى إلا أنها تتيح لمستخدمها بناء الكلاسات والتعامل معها بطرق منهجيات البرمجة الكائنية ( OOP ) مثل الوراثة و تعدد الأشكال و غيرها من المبادئ التي ستتعلمها لاحقاً في الدورة.متعددة النماذج
تسمح لغة C++ لمستخدمها باختيار الطريقة المناسبة له لكتابة الكود البرمجي من بين عدة نماذج مختلفة مثل النموذج الهيكلي ( Structural ) الشبيهة بلغة C والنموذج الكائني ( Object Oriented ) الشبيه بلغة جافا.الدعم الكبير
لغة C++ من اللغات القديمة نسبيا والمنتشرة بشكل كبير مما جعل منها لغة ذات شعبية كبيرة و مصادر تعلم مختلفة و متعددة و دعم كبير من قبل مجتمع المطورين.
لمن تم إعداد هذا الدورة تعلم السي بلاس بلاس ؟
تم إعداد هذا المرجع ليتلاءم مع جميع الأشخاص الذين يريدون التعلم.
إذاً سواء كنت هاوياً, طالباً أو مبرمجاً, فإن هذا المرجع سيساعدك على فهم أساسيات لغة C++ و الوصول إلى مستوى متقدم جداً .
This resource is designed for all people who want to learn. So, whether you are an amateur, student or programmer, this reference will help you understand the basics of C ++ and reach a very advanced level.
تحميل و تنصيب أدوات C++
في هذا الدرس سنرشدك لتحميل الأدوات التي سنستخدمها لبناء و تشغيل كود C++ على حاسوبك.
طريقة عمل برنامج مكتوب بلغة C++
الكود الذي تكتبه على الكمبيوتر لا يعمل بشكل مباشر بل يمر بعدة مراحل تباعاً حتى يعمل تماماً كما في الصورة التالية.
إذاً يمر الكود المكتوب بلغة C++ بثلاث مراحل حتى يصبح في النهاية برنامج يمكن تشغيله على الحاسوب.
في البدابة يقوم الـ preprocessor بتشذيب وتجهيز الملفات النصية لتدخل بعدها في عملية التجميع ( Compiling ) حيث يتم تحويل الملفات النصية الى ملفات ( نوعها Binary ) يفهمها الحاسوب مع المحافظة على بعض صفات الكود مثل أسماء المتغيرات والدوال ومن ثم يقوم الموصل ( Linker ) بوصل كل أجزاء البرنامج المختلفة ودمجها مع بعضها لتصبح ملف تنفيذي واحد ( نوعه EXE ) يمكن تشغيله في أي وقت مثل أي تطبيق عادي .
معلومة تقنية هامه
الـ preprocessor, الـ Compiler و الـ Linker هي مجرد برامج صغيرة تعمل مع بعضها بشكل متناسق حتى تحول كل الكود الذي قمنا بكتابته في المشروع لبرنامج عادي يمكن تشغيله بنقرة واحدة.
Important technical information The preprocessor, the compiler and the linker are just small programs that work together in a coherent way so that all the code that we have written in the project becomes a regular program that can be run with one click.
تجهيز بيئة العمل لتطوير تطبيقات بلغة C++
يوجد الكثير من بيئات العمل التي تمكنك من العمل على تطوير البرامج بلغة C++ مهما كان نظام التشغيل الذي تستخدمه مثل:
Eclipse
- CodeBlocks
- CLion
- Dev C++
الخ..
في هذه الدورة سنعلمك كيف تقوم بتحميل, تنصيب و استخدام برنامج CodeBlocks
المجاني من أجل كتابة و تجربة الكود حاسوبك الشخصي.
كما سنعلمك أيضاً كيف تستخدم خدمة أونلاين في حال أردت كتابة كود C++ بدون تنصيب أي برنامج على حاسوبك.
ملاحظة هامه
في حال كنت تستخدم نظام ويندوز و تستخدم برنامج Visual Studio
فيمكنك استخدامه نفسه لكتابة الكود بدل برنامج CodeBlocks
.
لمعرفة كيف تكتب كود C++ باستخدام برنامج Visual Studio
إبحث في يوتيوب عن: visual studio setup for c++
و شاهد أي فيديو تريد.
في حال كنت تستخدم نظام ماك و تستخدم برنامج XCode
فيمكنك استخدامه نفسه لكتابة الكود بدل برنامج CodeBlocks
.
لمعرفة كيف تكتب كود C++ باستخدام برنامج XCode
إبحث في يوتيوب عن: xcode setup for c++
و شاهد أي فيديو تريد .
If you are using Windows and using Visual Studio, you can use it itself to write code instead of CodeBlocks. To find out how to write C ++ code using Visual Studio, search YouTube for: visual studio setup for c ++ and watch any video you want. If you are on a Mac and use XCode, you can use it itself to write code instead of CodeBlocks. To find out how to write C ++ code using XCode, search YouTube for: xcode setup for c ++ and watch any video you want.
الشكل العام لأي برنامج مكتوب بلغة C++
الملف الأساسي في المشروع يجب أن يكون شكله كالتالي.
#include <iostream> int main() { // هنا يجب أن تضع الأوامر التي ستتنفذ عند تشغيل البرنامج return 0; }
الكود الذي يتنفذ مباشرةً عند تشغيل البرنامج هو الكود الذي نكتبه بداخل حدود الدالة main() و قبل الأمر return 0.
سنتطرق إلى مزيد من التفاصيل في الدرس التالي.
فائدة السطر using namespace std;
عند إنشاء أي مشروع جديد تلاحظ في الملف main.cpp
أنه يوجد الأمر using namespace std;
في السطر الثالث كالتالي.
#include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; // نستخدمه لطباعة أي نص نريد للمستخدم لكن لا تشغل بالك به الآن cout << الأمر return 0; }
لماذا أجد الأمر using namespace std;
موضوع ضمن كود المشروع إذا لم يكن وجوده إجبارياً؟
في البداية هذا السطر معناه أنك تريد تضمين الأشياء الموجودة بداخل المكتبة std
بشكل مباشر في المشروع.
في حال أردت إزالة هذا السطر ستكون مجبر على تحديد إسم المكتبة التي تستخدم منها الأمر cout
و cin
و غيرها من الأوامر التي سنتعلمها في دروس لاحقة.
الآن سيكون شكل الكود كالتالي في حال أردت إزالة الأمر using namespace std;
منه.
#include <iostream> int main() { std::cout << "Hello world!" << endl; // مكان وجود هذا الأمر C++ حتى نحدد لمترجم لغة cout قبل كلمة std:: لاحظ أننا أضفنا return 0; }
في هذه الدورة سنقوم بتضمين المكتبة std
في أغلب الأمثلة حتى يكون حجم الكود أصغر و أسهل عليك في القراءة, أي سنبقي الأمر using namespace std;
في الكود.
ملاحظة
من الآن و حتى إنتهاء سلسلة دروس C++ ستكون دروسك عبارة عن شروحات صغيرة لكل مفهوم جديد تتعلمه, و بهذه الطريقة ستفهم كل مبادئها.
خطوات تحميل برنامج CodeBlocks
إبحث في جوجل عن codeblocks.
أنقر على رابط أول موقع يظهر لك في نتائج البحث و سيكون الموقع هو موقع codeblocks نفسه كما يظهر في الرابط.
بعد أن يفتح موقع codeblocks الرسمي, قم النقر على Downloads حتى تذهب للصفحة التي يمكن فيها إختيار نسخة البرنامح الذي ستستخدمه.
في هذه الصفحة الجديدة ستجد عدة خيارات لتحميل البرنامج.
قم بالنقر على خيار Download the binary release لأنها أسهل نسخة من ناحية التنصيب على الحاسوب.
في هذه الصفحة ستجد عدة خيارات للتحميل. إنزل في الصفحة حتى تجد قسم التحميل بنظام التشغيل الذي تستخدمه.
ملاحظة: نحن نسنخدم نظام ويندوز لهذا سنتوجه لخيارات التحميل الخاصة بنظام ويندوز.بعدها قم بتحميل برنامج mingw-step.exe من خلال النقر على رابط التحميل الذي يظهر بجانبه من موقع FossHUB أو من موقع Sourceforge.net.
بعد أن تنقر على رابط التحميل من موقع FossHUB ستفتح صفحة جديدة و يبدأ تحميل البرنامج بشكل تلقائي.
إلى هنا, تكون قد قمت بتحميل برنامج CodeBlocks بنجاح و خطوتك التالية هي تنصيبه.
شرح خطوات تنصيب برنامج CodeBlocks
بعد تحميل CodeBlocks قم بفتحه حتى تبدأ بتنصيبه.
أنقر بزر الفأرة الأيمن على الملف, ثم إختر Run as administrator.
إضغط على Next.
ضع علامة صح على I Agree.
قم بإبقاء كل شيء مختاراً و إضغط على Next.
إضغط على Install.
بعد أن ينتهي تنصيب البرنامج بنجاح سيسألك إن كنت تريد تشغيله الآن.
إضغط على Yes لأنه يوجد خطوات بسيطة يجب أن تفعلها أول مرة تقوم فيها بتشغيل برنامج CodeBlocks و سنفعلها الآن.
أنقر على GNU GCC Compiler, ثم أنقر على ثم Set as default, ثم أنقر على OK.
الآن ستلاحظ أن واجهة برنامج CodeBlocks ستفتح و سيظهر لك رسالة فيها أربع خيارات.
إختر Yes, associate Code::Blocks with C/C++ file types ثم إضغط على OK.
إلى هنا, تكون قد قمت بتنصيب برنامج CodeBlocks بنجاح.
شرح خطوات تشغيل برنامج CodeBlocks
لتشيغل البرنامج ستجد أيقونته على سطج المكتب, و إذا لم تجد أيقونته فببساطة إبحث عنه, أي أنقر على زر البحث ثم أكتب codeblocks كالتالي.
بعد أن تجد أيقونة البرنامج, أنقر عليه فقط و سيفتح كالتالي.
الآن, قم بالعودة للدرس لتتعلم كيف تنشئ مشروع جديد (أي برنامج) بواسطة CodeBlocks و تقوم بتشغيله.
شرح خطوات إنشاء مشروع جديد في برنامج CodeBlocks
خطوات إنشاء مشروع جديد
أنقر على File, ثم New, ثم Project كالتالي.
أنقر على Console Application ثم على الزر Go كالتالي.
قم بوضع علامة صح على الخيار Skip this page next time ثم أنقر على Next حتى لا تظهر لك هذه الصفحة مرة أخرى كالتالي.
أنقر على ++C و من ثم أنقر على Next كالتالي.
قم بتحديد الإسم الذي تريد وضعه للمشروع و مسار المجلد الذي تريد أن يتم فيه حفظه على حاسوبك, ثم أنقر على Next كالتالي.
لا تعدل أي شيء في هذه الصفحة, أنقر Next كالتالي فقط.
بعد أن يتم إنشاء المشروع بنجاح سيظهر بداخل قائمة المشاريع كالتالي.
لرؤية الملف الأساسي في المشروع و الذي يمكنك كتابة الكود بداخله, إفتح المجلد
Sources
ثم أنقر على الملفmain.cpp
كالتالي.
لتشغيل هذا البرنامج و الذي سيعرض لك فقط جملة
"Hello world!"
أنقر على الزرBuild and run
كالتالي.
بعد تشغيل البرنامج سيفتح موجه الأمر (و الذي يسمى CMD أو Console) و يظهر بداخله نتيجة التشغيل كالتالي.
خطوات تشغيل المشروع بشكل صحيح
قبل تشغيل أي مشروع يجب أن تقوم بتحويل كود المشروع لملف تنفيذي نوعه EXE
و هنا في حال كان الكود فيه أي مشكلة ستظهر لك.
عندما تقوم بتحويل كل كود المشروع لملف تنفيذي EXE
فأنت بذلك تفعل ما يسمى Build للمشروع.
ملاحظة: هذا الأمر تفعله بنقرة واحدة فقط و ستتعلم كيف تفعل ذلك بكل سهولة بعد قليل.
في برنامج CodeBlocks يمكنك أن تحول كود المشروع لملف تنفيذ و تشغله بنقرة واحدة فقط إن أردت و هذا الأمر يسمى Build and Run.
إنتبه جيداً
إذا قمت بتعديل كود المشروع و حفظته فقط بدون أن تفعل Build - أي بدون أن تقوم بتحويل كود المشروع لملف تنفيذي - ثم قمت بتشغيله فسيظهر لك عند التشغيل نتيجة آخر مرة فعلت فيها Build و ليس نتيجة الكود الذي حفظته آخر مرة.
لذلك ننصحك دائماً بان تفعل Build في حال أردت فقط التشييك على كود المشروع.
و ننصحك بأن تفعل Build and Run دفعة واحدة في حال أردت التشييك على كود المشروع و تشغيله.
خطوات تحديد إصدار المترجم في برنامج CodeBlocks
إذا كنت تريد التعامل مع كود خاص بإصدار مترجم محدد, أو تريد تجربة أشياء متعلقة بإصدار مترجم محدد فلا بد لك من تحديد إصدار المترجم الذي تريده أن يفسر الكود الذي كتبته للحاسوب حتى لا يظهر لك أخطاء عند محاولة تشغيل الكود.
كمثال بسيط, إذا أردت استخدام الكلمة auto
في الكود, يجب أن تحدد لبرنامج CodeBlocks أنك تتعامل مع إصدار المترجم [-std=c++11]
لأن الإصدارات الأقدم من هذا الإصدار لم تكن الكلمة auto
قد أضيفت فيها بعد و هذا يعني أنها تعتبر شيء غير معروف بالنسبة للإصدارات القديمة و يؤدي لظهور مشاكل في الكود عند تشغيله.
الآن لتحديد رقم الإصدار الذي تتعامل معه, يمكنك اتباع هذه الخطوات البسيطة:
أسلوب كتابة الكود في لغة C++
مبادئ كتابة الكود في C++
في البداية عليك معرفة أن كل ما ستتعلمه في هذا الدرس عبارة عن شرح نظري لأساليب كتابة الكود.
إذاَ في هذا الدرس ستتعلم كيف تكتب كود C++ بشكل صحيح يفهمه الكمبيوتر و يفهمه أي شخص يحاول قراءة الكود الذي ستقوم أنت بكتابته مستقبلاً عند بناء تطبيقاتك الخاصة.
Case Sensitivity في السي بلاس بلاس
لغة C++ تطبق مفهوم الـ Case Sensitivity, و هذا يعني أنها تميز بين الأحرف الكبيرة و الأحرف الصغيرة.
مثال: note
و Note
ليسوا شيئاً واحداً.
Strictly Typed في السي بلاس بلاس
لغة C++ تطبق مفهوم الـ Strictly Typed, و هذا يعني أنه يجب تحديد نوع المتغير مباشرةً عند تعريفه (مثل عدد صحيح , حرف , عدد عشري , الخ..) و لا يمكن تغيير نوع البيانات المخزنة فيه لاحقاً كما هو الحال في لغة جافا C و C#, و على خلاف بعض اللغات الأخرى مثل بايثون و جافا سكريبت.
إسم الكلاس في السي بلاس بلاس
يفضل أن يبدأ إسم الكلاس بحرف كبير و في حال كان إسم الكلاس يتألف من أكثر من كلمة, إجعل أول حرف من كل كلمة كبيراً.
أمثلة
•في حال كان إسم الكلاس يتألف من كلمة واحدة.
class Car{ }
•في حال كان إسم الكلاس يتألف من أكثر من كلمة.
class CppFirstClass{ }
إسم المتغير في السي بلاس بلاس
إستخدم الأحرف الصغيرة عند اختيار أسماء للمتغيرات و في حال كان إسم المتغير يتألف من أكثر من كلمة إبدأ كل كلمة بحرف كبير ابتداءً من الكلمة الثانية.
أمثلة
•في حال كان إسم المتغير يتألف من كلمة واحدة.
int color;
•في حال كان إسم المتغير يتألف من أكثر من كلمة.
int firstCarColor;
إسم الدالة في السي بلاس بلاس
إستخدم الأحرف الصغيرة عند اختيار أسماء للدوال و في حال كان إسم الدالة يتألف من أكثر من كلمة إبدأ كل كلمة بحرف كبير ابتداءً من الكلمة الثانية.
أمثلة
•في حال كان إسم الدالة يتألف من كلمة واحدة.
void color();
•في حال كان إسم الدالة يتألف من أكثر من كلمة.
void changeCarColor();
التعليقات في السي بلاس بلاس
نستخدم التعليقات لنضع ملاحظات حول الكود الذي كتبناه فقط, لكي لا ننسى كيف برمجنا الكود في حال أردنا مراجعته أو التعديل عليه بعد وقت طويل.
التعليقات لا تؤثر إطلاقاً على الكود المكتوب, و في لغة C++ يوجد أسلوبين لوضع التعليقات:
تعليق على سطر واحد.
تعليق على عدة أسطر.
أمثلة
•في حال كان التعليق يتألف من سطر واحد, نضع الرمز // قبل كتابة التعليق.
// this is a one line comment تعليق سطر واحد
•في حال كان التعليق يتألف من عدة أسطر, نبدأ التعليق بالرمز /* و ننهيه بالرمز */.
/* This is multlines comment هذا تعليق يتألف من عدة سطور */
تذكر: أنت لست مجبراً على وضع تعليقات في برامجك. و لكننا ننصحك بوضع تعليقات دائماً حتى تساعدك في فهم الكود الذي كتبته.
الأحرف المستخدمة في وضع الأسماء في C++
أي إسم نضعه لمتغير, دالة, كلاس, كائن إلخ.. يسمى identifier في البرمجة.
في C++ كل عنصر نريد خلقه علينا إعطاءه إسم خاص, أي علينا تحديد الـ identifier له.
إذاً يتم التمييز بين العناصر في C++ من خلال أسمائهم, أي من خلال الـ Identifiers.
قواعد إلزامية عند إعطاء الأسماء
جميع الـ Identifiers يجب أن يبدأوا بحرف كبير بين
A-Z
أو حرف صغير بينa-z
أو الشحطة_
.يمنع بدء الـ Identifiers برقم.
يمنع استخدام الـ Literals أي القيم
true
,false
.يمنع إستخدام أي كلمة من الكلمات المحجوزة ( Keywords ).
لا تنسى أن C++ تطبق مبدأ الـ Case Sensitive.
ركز على أول حرف فقط
أمثلة للأسماء التي يسمح باستخدامها: Harmash , name , _number
أمثلة للأسماء التي يمنع استخدامها: 1st , -cash , @user
ماهي الكلمات المحجوزة في C++
جميع الكلمات التالية محجوزة للغة C++, أي لا يمكن إستخدامها كـ Identifiers.
alignof and
and_eq
auto
bitand
bitor
bool
break
case
catch
char
char32_t
class
compl
const
constexpr
const_cast
continue
decltype
default
delete
do
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
inline
int
long
mutable
namespace
new
noexcept
not
not_eq
nullptr
operator
or_eq
private
protected
Public
register
reinterpret_cast
requires
return
short
signed
sizeof
static_assert
static_cast
struct
switch
template
this
thread_local
throw
true
try
typedef
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
xor
xor_eq
أمر الطباعة cout >>
شرح أمر الطباعة cout
بشكل عام, نستخدم الأمر cout
لطباعة أي شيء نريد في الكونسول.
عند إستخدام الأمر cout
يجب أن تضع العامل <<
قبل أي شيء تريد تمريره له حتى يتم طباعته.
مثال
#include <iostream> int main() { std::cout << "alawiri.com"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com
شرح الكود
الأمر
#include <iostream>
الموجود في السطر الأول يقوم بتضمين الحزمةiostream
التي تحتوي على الأوامر الأساسية التي نحتاجها في التطبيقات التي تعتبر Console Application و التي سنستخدمها في أغلب البرامج مثل أمر الطباعةcout
و غيره من الأوامر و الدوال الجاهزة التي ستمر معك لاحقاً في الدورة.سبب وضع
std::
قبلcout
هو أن الأمرcout
موجود فيه.الدالة
main()
التي قمنا بتعريفها ابتداءاً من السطر الثالث يجب أن يكون نوعهاint
لأنها تمثل نقطة البداية في البرنامج.وضع
return 0;
في السطر السادس و كآخر أمر في الدالةmain()
هو أمر متعارف عليه, و فكرته إرسال الرقم 0 لنظام التشغيل عند انتهاء أو إغلاق البرنامج بشكل طبيعي. هكذا سيتمكن نظام التشغيل من التفريق بين الإنهاء الطبيعي للبرنامج والإنهاء المفاجئ ( Crash ) الذي يحدث نتيجة خطأ ما.
مبادئ الطباعة الأساسية في C++
عليك مراعاة المبادئ التالية عند استخدام الأمر cout
.
لعرض رقم, ضعه كما هو.
لعرض قيمة متغير, ضعه كما هو.
لعرض حرف يجب وضعه بين
' '
.لعرض كلمة أو نص, يجب وضعه بين
" "
.
طباعة عدة أشياء دفعة واحدة بواسطة الأمر cout
في C++
لدمج عدة أشياء مختلفة و عرضها باستخدام الأمر cout
نضع الرمز <<
بين كل شيئين نريد طباعتهما.
في المثال التالي, قمنا بإنشاء برنامج يحتوي على متغيرين name
و year
.
بعدها قمنا بعرضهما كجملة واحدة.
مثال
#include <iostream> int main() { char *name = "Ali"; int year = 1996; std::cout << "Hello my name is " << name << ", I born in " << year; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
Hello my name is Ali, I born in 1996
عرض المحتوى على سطر جديد C++
عند عرض المحتوى بواسطة الأمر cout
يمكنك تحديد نهاية السطر من خلال وضع العامل endl
و عندها سيظهر أي شيء تطبعه بعده على سطر جديد.
معلومة: endl
إختصار لجملة End Line.
مثال
#include <iostream> int main() { std::cout << "alawiri.com" << std::endl << "C++ course"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com C++ course
سبب وضع std::
قبل العامل endl
هو أن العامل endl
موجود فيه.
أهمية الكلمة using
في C++
في البداية, سنشرح الكلملة using
بتفصيل ممل في درس لاحق نظراً لأهميتها في المشاريع.
الآن, إذا أردت أن تكتب الأمرين cout
و endl
بشكل مباشر بدون الحاجة لأن تكتب قبلهما std::
, قم بتضيمن النطاق std
مرة واحدة في الملف و عندها تصبح قادر على استخدام أي شيء موجود فيه بشكل مباشر.
لتضمين النطاق std
في الملف main.cpp
نكتب using namespace std;
فوق الدالة main()
.
الآن, سنعيد نفس المثال السابق مع تضمين النطاق std
بشكل مباشر.
مثال
#include <iostream> using namespace std; // std هنا قمنا بتضيمن النطاق int main() { cout << "alawiri.com" << endl << "C++ course"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com C++ course
النزول على سطر جديد بواسطة الرمز \n
في C++
إذا أردت النزول على سطر جديد بدون الحاجة لكتابة << endl
فيمكنك تمرير \n
كنص.
ملاحظة: أغلب المبرمجين يفضلون تمرير \n
بدل كتابة << endl
لأنها مختصرة أكثر.
معلومة: \n
إختصار لجملة New Line.
في المثال التالي قمنا بتمرير \n
كنص للأمر cout
من أجل النزول على سطر جديد.
مثال
#include <iostream> using namespace std; int main() { cout << "alawiri.com\nC++ course"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com C++ course
هنا قمنا بإعادة المثال السابق تماماً مع كتابة أمرين cout
هذه المرة.
ملاحظة: هذا الأسلوب أسهل من ناحية القراءة و التعديل و لهذا ننصح باعتماده بدلاً من الأسلوب السابق.
مثال
#include <iostream> using namespace std; int main() { cout << "alawiri.com\n";
cout << "C++ course"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com C++ course
وضع عدة مسافات فارغة بواسطة الرمز \t
في C++
إذا أردت وضع عدة مسافات فارغة دفعة واحدة و بشكل مرتب فالأفضل أن تستخدم الرمز \t
بدل وضع المسافات بنفسك.
من الأشياء التي قد تجعلك تستخدم \t
هي أنه عند طباعة عدة أسطر تجده يحاول عرضهم لك بشكل متناسق لإظهار المحتوى بشكل أسهل للقراءة.
معلومة: \t
إختصار لجملة Tab Space.
في المثال التالي قمنا بوضع الرمز \t
بين الكلمات من أجل وضع مسافة تلقائية بينهم بشكل مرتب.
مثال
#include <iostream> using namespace std; int main() { cout << "Name:\tAli Rabeei\n"; cout << "Job:\tProgrammer"; return 0; }
•سنحصل على النتيجة التالية عند التشغيل.
Name: Ali Rabeei Job: Programmer
إصدار صوت تنبيه بواسطة الرمز \a
في C++
إذا أردت إصدار صوت تنبيه لجعل المستخدم ينتبه للكونسول, يمكنك ذلك بكل سهولة من خلال تمرير الرمز \a
كنص للأمر cout
.
معلومة: \a
إختصار لكلمة Alert.
في المثال التالي قمنا باستخدام الرمز \a
لتشغيل صوت تنبيه في جهاز المستخدم.
مثال
#include <iostream> using namespace std; int main() { cout << "Yes, you hear the alert :)\a"; return 0; }
•لا تنسى رفع صوت الحاسوب حتى تسمع صوت التنبيه عند التشغيل و سيظهر لك النص التالي أيضاً.
Yes, you hear the alert :)
المسافات الفارغة و ترتيب الكود في C++
لغة C++ لا تتأثر بالمساحات البيضاء ( White Spaces ) مثل المسافات والأسطر الفارغة حتى انه يمكن كتابة بعض البرامج بالكامل في سطر واحد و لكن لا ننصح ابداً بذلك و يفضل ترك مسافات و أسطر فارغة حتى تكون قادر على مراجعة و استيعاب الكود بسهولة تامة عند الرجوع إليه.
في المثال التالي قمنا بكتابة نفس المثال السابق على سطر واحد.
تنبيه: رغم أن الأسلوب التالي لا يوجد فيه أي مشكلة برمجياً, إلاّ أننا ننصحك بعدم إعتماد هذا الأسلوب إطلاقاً عند كتابة الكود.
مثال
#include <iostream> using namespace std; int main() {cout << "alawiri.com"<<endl<<"C++ course";return 0;}
•سنحصل على النتيجة التالية عند التشغيل.
alawiri.com
C++ course