مقدمة في لغة C++: التاريخ، الميزات، التطبيقات في C++
ما هذا ولماذا؟
تخيل أنك تعطي أوامر لروبوت. إذا قلت "افعل شيئًا ما"، فسيصاب بالارتباك. ولكن إذا قلت "استدر يسارًا، امشِ 5 خطوات، ارفع يدك" — فسينفذ كل شيء بدقة. C++ هي لغة تكتب بها تعليمات دقيقة جدًا للكمبيوتر. إنها مثل لعبة LEGO: أنت بنفسك تقوم بتجميع كل قطعة صغيرة، لذلك تحصل على برامج سريعة وقوية.
لماذا تتعلمها؟ أولاً، تعمل ألعاب (مثل Minecraft)، والمتصفحات، والمركبات الفضائية بلغة C++. ثانيًا، تعلمك التفكير كمبرمج: ستفهم كيف يخزن الكمبيوتر الأرقام، وكيف تعمل الذاكرة. الأمر أشبه بمعرفة ليس فقط كيفية قيادة السيارة، ولكن أيضًا ما تحت غطاء المحرك.
حتى لو كنت مبتدئًا، فإن لغة C++ ليست مخيفة كما تبدو. سنبدأ بأبسط الأشياء — مثل كتابة "مرحبًا، أيها العالم!" وحساب الحلوى.
القواعد النحوية وأمثلة الكود
القواعد النحوية (Syntax) هي قواعد اللغة، مثل قواعد النحو في اللغة العربية. في لغة C++، ينتهي كل أمر بفاصلة منقوطة ;، وتُحاط كتل الكود بأقواس متعرجة {}. دعنا نلقي نظرة على أمثلة حية.
مثال 1: مرحبًا، أيها العالم!
#include <iostream> // نقوم بتضمين المكتبة للإدخال/الإخراج
using namespace std; // لتجنب كتابة std:: قبل cout
int main() { // الدالة الرئيسية، يبدأ منها البرنامج
cout << "Hello, world!" << endl; // نطبع نصًا على الشاشة
return 0; // نقول أن البرنامج انتهى بنجاح
}
كيف يعمل: #include — كما لو أننا نأخذ مجموعة أدوات جاهزة. int main() — هو باب الدخول للبرنامج. داخل {} نكتب الأوامر. cout — هي "آلة طباعة" تطبع النص. endl — الانتقال إلى سطر جديد.
مثال 2: نحسب الحلوى
#include <iostream>
using namespace std;
int main() {
int candies = 10; // عدد صحيح — كمية الحلوى
int friends = 3; // كم عدد الأصدقاء
int each = candies / friends; // نقسم الحلوى بالتساوي (قسمة صحيحة)
cout << "سيحصل كل واحد على " << each << " حلوى" << endl;
return 0;
}
الشرح: int — هو نوع بيانات للأعداد الصحيحة (مثل 10، 3). / — القسمة. لكن هناك خدعة: إذا قسمت 10 على 3، ستحصل على 3، وليس 3.33، لأننا نتعامل مع أعداد صحيحة. الباقي (حلوى واحدة) سيضيع — يجب أن تتذكر هذا!
مثال 3: خمن الرقم
#include <iostream>
using namespace std;
int main() {
int secret = 7; // الرقم المخفي
int guess; // متغير لإجابة المستخدم
cout << "خمن رقمًا من 1 إلى 10: ";
cin >> guess; // نقرأ الرقم الذي أدخله المستخدم
if (guess == secret) { // إذا خمن
cout << "لقد فزت!" << endl;
} else { // وإلا
cout << "لم تخمن. كان الرقم " << secret << endl;
}
return 0;
}
أشياء جديدة: cin — هو "ميكروفون" يستمع إلى ما يدخله المستخدم. if — التحقق من شرط. == — المقارنة (لا تخلط بينه وبين = الذي يعين قيمة!). else — وإلا.
مثال 4: حلقة التكرار — نكرر 5 مرات
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; i++) { // البداية: i=1; الشرط: طالما i<=5; الخطوة: i+1
cout << "سطر رقم " << i << endl;
}
return 0;
}
كيف تفهم: for — هي مثل "كرر 5 مرات". int i = 1 — ننشئ عدادًا. i <= 5 — طالما أن العداد لم يصبح أكبر من 5، نستمر في التكرار. i++ — نزيد العداد بمقدار 1 بعد كل خطوة. في النهاية، ستظهر 5 أسطر على الشاشة.
مثال 5: الدالة — مساعدك الخاص
#include <iostream>
using namespace std;
// ننشئ دالة ترحب بالاسم
void greet(string name) { // void — الدالة لا تعيد أي شيء
cout << "مرحبًا، " << name << "!" << endl;
}
int main() {
greet("Sara"); // نستدعي الدالة بالاسم "Sara"
greet("Ahmed");
return 0;
}
الفكرة: الدوال هي مثل الوصفات. تكتب الوصفة greet مرة واحدة، ثم تستخدمها مرات عديدة. string — نوع للنص. داخل الأقواس (string name) — المكونات التي نمررها إلى الدالة.
مقارنة مع Python
Python — هي مثل اللغة المنطوقة: "يا كمبيوتر، افعل هذا". C++ — مثل دليل فني: "خذ المسجل AX، اكتب فيه 5، نفذ عملية الجمع". دعنا نقارن بالأمثلة.
| المهمة | C++ | Python |
|---|---|---|
| طباعة نص | cout << "Hello"; |
print("Hello") |
| إدخال رقم | cin >> x; |
x = int(input()) |
| شرط | if (x > 0) { ... } |
if x > 0: ... |
| تكرار 5 مرات | for (int i=0; i<5; i++) |
for i in range(5): |
| دالة | void f(int a) { ... } |
def f(a): ... |
الاختلافات الرئيسية:
- الفاصلة المنقوطة: في لغة C++، هي إلزامية بعد كل تعليمة.
- الأقواس المتعرجة: تحدد كتل الكود في C++، بينما تستخدم Python المسافة البادئة (indentation).
- كتابة المتغيرات: في C++، يجب تحديد نوع المتغير (مثل
int،string)، بينما في Python يتم تحديد النوع تلقائيًا. - السرعة: C++ أسرع بشكل عام، لأنها تُترجم مباشرة إلى كود الآلة.