🔥 أحدث الأخبار

موقع يهتم بكل ماهو جديد في عالم التكنولوجيا والرياضة

الحلقة الخامسة في تعلم C++: المصفوفات (Arrays)

 


الحلقة الخامسة في تعلم C++: المصفوفات (Arrays)

#برمجة

مقدمة

مرحباً بك في الحلقة الخامسة من سلسلة تعلم C++ للمبتدئين.

في الحلقات السابقة تعلمنا:

  • المتغيرات وأنواع البيانات
  • الشروط (if / else / switch)
  • الحلقات التكرارية (loops)
  • الدوال (functions)

لكن كل ما تعلمناه إلى الآن كان يتعامل مع قيم مفردة فقط.

مثلاً:

  • متغير واحد لعمر شخص واحد
  • متغير واحد لرقم واحد

لكن ماذا لو أردنا تخزين:

  • درجات 10 طلاب؟
  • أو 100 رقم؟
  • أو قائمة أسماء؟

هنا يأتي دور موضوع مهم جداً:

المصفوفات (Arrays)


ما هي المصفوفة؟

المصفوفة هي متغير واحد يحتوي على عدة قيم من نفس النوع.

بدلاً من إنشاء 10 متغيرات، نستخدم مصفوفة واحدة.


مثال من الحياة الواقعية

تخيل صندوق يحتوي على 5 أدراج:

كل درج فيه رقم:

  • الدرج 0 → 10
  • الدرج 1 → 20
  • الدرج 2 → 30
  • الدرج 3 → 40
  • الدرج 4 → 50

هذا هو مفهوم المصفوفة.


تعريف المصفوفة في C++

int numbers[5];

هذا يعني:

  • مصفوفة اسمها numbers
  • تحتوي على 5 عناصر
  • نوعها أعداد صحيحة

إعطاء قيم للمصفوفة

int numbers[5] = {10, 20, 30, 40, 50};

الوصول إلى عناصر المصفوفة

numbers[0] = 10
numbers[1] = 20

⚠️ المصفوفة تبدأ من الرقم 0 وليس 1


مثال طباعة عناصر المصفوفة

#include <iostream>
using namespace std;

int main()
{
    int numbers[5] = {10, 20, 30, 40, 50};

    cout << numbers[0] << endl;
    cout << numbers[1] << endl;
    cout << numbers[2] << endl;
    cout << numbers[3] << endl;
    cout << numbers[4] << endl;

    return 0;
}

طباعة المصفوفة باستخدام loop

#include <iostream>
using namespace std;

int main()
{
    int numbers[5] = {10, 20, 30, 40, 50};

    for(int i = 0; i < 5; i++)
    {
        cout << numbers[i] << endl;
    }

    return 0;
}

مثال إدخال قيم من المستخدم

#include <iostream>
using namespace std;

int main()
{
    int numbers[5];

    for(int i = 0; i < 5; i++)
    {
        cin >> numbers[i];
    }

    for(int i = 0; i < 5; i++)
    {
        cout << numbers[i] << endl;
    }

    return 0;
}

مثال جمع عناصر المصفوفة

#include <iostream>
using namespace std;

int main()
{
    int numbers[5];
    int sum = 0;

    for(int i = 0; i < 5; i++)
    {
        cin >> numbers[i];
        sum += numbers[i];
    }

    cout << "Sum = " << sum;

    return 0;
}

مثال إيجاد أكبر رقم في المصفوفة

#include <iostream>
using namespace std;

int main()
{
    int numbers[5];
    int max;

    for(int i = 0; i < 5; i++)
    {
        cin >> numbers[i];
    }

    max = numbers[0];

    for(int i = 1; i < 5; i++)
    {
        if(numbers[i] > max)
        {
            max = numbers[i];
        }
    }

    cout << "Max = " << max;

    return 0;
}

مثال إيجاد أصغر رقم

#include <iostream>
using namespace std;

int main()
{
    int numbers[5];
    int min;

    for(int i = 0; i < 5; i++)
    {
        cin >> numbers[i];
    }

    min = numbers[0];

    for(int i = 1; i < 5; i++)
    {
        if(numbers[i] < min)
        {
            min = numbers[i];
        }
    }

    cout << "Min = " << min;

    return 0;
}

المصفوفات مع الدوال

#include <iostream>
using namespace std;

void printArray(int arr[], int size)
{
    for(int i = 0; i < size; i++)
    {
        cout << arr[i] << endl;
    }
}

int main()
{
    int numbers[5] = {1,2,3,4,5};

    printArray(numbers, 5);

    return 0;
}

أخطاء شائعة

❌ نسيان أن الفهرسة تبدأ من 0
❌ تجاوز حجم المصفوفة
❌ استخدام حجم خاطئ في الحلقة

مثال خطأ:

numbers[5] = 100; // خطأ لأن آخر index هو 4

تطبيق عملي

برنامج درجات الطلاب

#include <iostream>
using namespace std;

int main()
{
    int grades[5];
    int sum = 0;

    cout << "Enter grades:" << endl;

    for(int i = 0; i < 5; i++)
    {
        cin >> grades[i];
        sum += grades[i];
    }

    cout << "Average = " << sum / 5;

    return 0;
}

تمارين

  1. اكتب برنامج يخزن 10 أرقام ويطبعها
  2. اكتب برنامج يجد أكبر رقم في مصفوفة
  3. اكتب برنامج يحسب مجموع عناصر المصفوفة
  4. اكتب برنامج يعكس ترتيب المصفوفة

ملخص الحلقة الخامسة

في هذه الحلقة تعلمنا:

  • ما هي المصفوفات
  • كيفية تعريفها
  • التعامل مع العناصر
  • استخدام loops معها
  • تطبيقات عملية

في الحلقة السادسة سنتعلم:

🔥 Strings (السلاسل النصية) بشكل احترافي
🔥 وكيف نتعامل مع النصوص مثل كلمة المرور والاسم والبريد الإلكتروني ان شاءالله 





تعليقات

💬 🙋🏻‍♂️