⚙️ C++

مقدمة في لغة C++: التاريخ، الميزات، التطبيقات في C++

```html

ما هذا ولماذا؟

تخيل أنك تعطي أوامر لروبوت. إذا قلت "افعل شيئًا ما"، فسيصاب بالارتباك. ولكن إذا قلت "استدر يسارًا، امشِ 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++ أسرع بشكل عام، لأنها تُترجم مباشرة إلى كود الآلة.
```