في هذا الدرس، سنتعمق في البنية الأساسية لبرامج C++، وسنتعلم كيفية عمل المترجم (Compiler)، واستخدام التعليقات، وهيكل البرنامج الأساسي بالتفصيل، مع أمثلة عملية لشرح كل مفهوم.
1. الفرق بين المترجم (Compiler) والمفسر (Interpreter)
عند كتابة برنامج بأي لغة برمجة، يتم تحويله إلى لغة مفهومة من قبل الحاسوب، وهي لغة الآلة (Machine Code). في لغة C++، يتم هذا التحويل باستخدام المترجم (Compiler). لفهم دور المترجم والمفسر، نحتاج إلى معرفة الفرق بينهما.
1.1 المترجم (Compiler)
المترجم هو برنامج يقوم بتحويل كود C++ بالكامل إلى ملف تنفيذي قبل تشغيله. يعمل على معالجة الكود وتحويله إلى تعليمات يفهمها المعالج.
🔹 مزايا المترجم:
- سرعة تنفيذ البرنامج لأنه يُترجم مرة واحدة.
- يكتشف الأخطاء أثناء الترجمة، مما يسهل إصلاحها قبل التشغيل.
🔹 عيوب المترجم:
- يحتاج إلى وقت أطول لتحويل البرنامج مقارنة بالمفسر.
- يجب إعادة الترجمة عند إجراء أي تغيير في الكود.
1.2 المفسر (Interpreter)
المفسر يقوم بقراءة الكود سطرًا بسطر أثناء التشغيل دون الحاجة إلى تحويله بالكامل إلى ملف تنفيذي مسبقًا. ولكن لغة C++ لا تستخدم مفسرًا، بل تعتمد على المترجم.
🔹 مزايا المفسر:
- يسهل اكتشاف الأخطاء لأنه يوقف التنفيذ عند أول خطأ.
- لا يحتاج إلى إعادة الترجمة عند تعديل الكود.
🔹 عيوب المفسر:
- بطيء لأنه ينفذ كل سطر مباشرة أثناء التشغيل.
- لا يسمح بإنشاء ملفات تنفيذية مستقلة.
1.3 مقارنة بين المترجم والمفسر
| الميزة | المترجم (Compiler) | المفسر (Interpreter) |
|---|---|---|
| طريقة العمل | يحوّل الكود بالكامل إلى ملف تنفيذي | يفسر الكود سطرًا بسطر أثناء التنفيذ |
| السرعة | أسرع عند التشغيل | أبطأ بسبب التفسير الفوري |
| التصحيح | أصعب لأن الأخطاء تظهر بعد الترجمة | أسهل لأن الأخطاء تظهر فورًا |
| الاستخدام | اللغات مثل C++ و Java و Go | اللغات مثل Python و JavaScript |
2. التعليقات في C++
التعليقات تُستخدم لكتابة ملاحظات داخل الكود، تساعد المبرمجين على فهم الكود بشكل أفضل. لا تؤثر التعليقات على تشغيل البرنامج.
2.1 التعليقات أحادية السطر (//)
تُستخدم لكتابة تعليق قصير في سطر واحد.
🔹 مثال:
// هذا تعليق يوضح أن السطر التالي يطبع رسالة
cout << "مرحبا بالعالم!" << endl;
2.2 التعليقات متعددة الأسطر (/* ... */)
تُستخدم لكتابة تعليقات تمتد عبر عدة أسطر.
🔹 مثال:
/*
هذا تعليق متعدد الأسطر
يُستخدم لشرح أجزاء معقدة من الكود
*/
cout << "C++ لغة رائعة!" << endl;
2.3 لماذا نستخدم التعليقات؟
- توضيح الكود للمبرمجين الآخرين.
- تسهيل فهم الكود عند مراجعته لاحقًا.
- تعطيل جزء من الكود مؤقتًا أثناء التصحيح.
3. بنية البرنامج الأساسي في C++
كل برنامج C++ يتبع بنية محددة تتضمن المكتبات والدوال الأساسية.
3.1 تضمين المكتبات (#include <iostream>)
المكتبات تحتوي على أكواد جاهزة تسهل البرمجة. أهم مكتبة في C++ هي iostream، والتي تتيح التعامل مع الإدخال والإخراج.
🔹 مثال:
#include <iostream> // تضمين مكتبة الإدخال والإخراج
3.2 استخدام فضاء الأسماء (namespace)
🔹 في C++، العديد من الدوال والمتغيرات موجودة داخل فضاء الأسماء std. لاستخدام هذه الدوال بدون كتابة std:: في كل مرة، نستخدم:
using namespace std;
🔹 بدون using namespace std:
#include <iostream>
int main() {
std::cout << "مرحبًا بك في C++!" << std::endl; // استخدام std::
return 0;
}
🔹 مع using namespace std:
#include <iostream>
using namespace std;
int main() {
cout << "مرحبًا بك في C++!" << endl; // بدون std::
return 0;
}
3.3 دالة main()
كل برنامج C++ يبدأ تنفيذه داخل دالة main().
🔹 الشكل العام لدالة main():
int main() {
// الكود الرئيسي هنا
return 0;
}
int main(): تُعرّف الدالة الرئيسية.{}: تُحدد بداية ونهاية الكود داخلmain().return 0;: تُشير إلى أن البرنامج انتهى بنجاح.
3.4 cout و cin: الإدخال والإخراج
3.4.1 طباعة البيانات (cout)
تُستخدم cout لطباعة النصوص والبيانات إلى الشاشة.
🔹 مثال:
#include <iostream>
using namespace std;
int main() {
cout << "مرحبا بالعالم!" << endl;
return 0;
}
3.4.2 إدخال البيانات (cin)
تُستخدم cin لقراءة مدخلات المستخدم.
🔹 مثال:
#include <iostream>
using namespace std;
int main() {
int age;
cout << "أدخل عمرك: ";
cin >> age;
cout << "عمرك هو: " << age << " سنة" << endl;
return 0;
}
3.5 تشغيل البرنامج
3.5.1 في CodeBlocks:
- افتح CodeBlocks، أنشئ مشروعًا جديدًا، وأضف الكود، ثم اضغط
F9للتشغيل.
3.5.2 في Visual Studio:
- افتح Visual Studio، أنشئ Console App، انسخ الكود، ثم اضغط
Ctrl + F5للتشغيل.
3.5.3 في سطر الأوامر (GCC – Linux/macOS):
- احفظ الملف باسم
program.cpp. - قم بترجمة الكود باستخدام:
g++ program.cpp -o program - شغل البرنامج باستخدام:
./program
الملخص
- المترجم (Compiler) يحوّل الكود إلى ملف تنفيذي دفعة واحدة، بينما المفسر (Interpreter) ينفذ الكود سطرًا بسطر.
- التعليقات (
//و/* ... */) تُستخدم لتوضيح الكود. #include <iostream>ضرورية لاستخدامcoutوcin.main()هي الدالة التي يبدأ منها تنفيذ البرنامج.coutتُستخدم لطباعة النصوص، وcinتُستخدم لإدخال البيانات.
🚀 الآن يمكنك كتابة برامج C++ بسيطة وفهم بنيتها الأساسية!
اكتشاف المزيد من كود التطور
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.


