Menu
CoddyTech

عمليات المصفوفات الشائعة

جزء من قسم الأساسيات في رحلة C++ على Coddy. الدرس 66 من 74.

إليك بعض عمليات المصفوفات الشائعة:

  • أوجد مجموع جميع العناصر في مصفوفة:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • أوجد متوسط عناصر في مصفوفة:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;
  • اعثر على العنصر الأكبر في مصفوفة:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] > max) {
        max = numbers[i];
    }
}
std::cout << "Max: " << max;
  • اعثر على العنصر الأدنى في مصفوفة:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] < min) {
        min = numbers[i];
    }
}
std::cout << "Min: " << min;
challenge icon

التحدي

سهل

أنشئ دالة باسم calculateStats تأخذ مصفوفة من الأعداد من النوع double وحجم المصفوفة كمدخلات، وتنفّذ العمليات التالية:

  1. تحسب مجموع جميع العناصر في المصفوفة.
  2. تحسب متوسط عناصر المصفوفة.
  3. تعثر على أكبر عنصر في المصفوفة.
  4. تعثر على أصغر عنصر في المصفوفة.

يجب أن تعيد الدالة مصفوفة من الأعداد من النوع double تحتوي على المجموع والمتوسط والقيمة القصوى والقيمة الدنيا، بهذا الترتيب.


ملاحظات مهمة:
  • استخدم المعامل size للتحكم في الحلقة: لا تستخدم std::size().
  • لتهيئة max وmin، ابدأ بالقيمة arr[0]. يعمل هذا بشكل صحيح حتى عندما تحتوي المصفوفة على أعداد سالبة فقط.
  • يخصص الكود المكتوب مسبقًا في main() مصفوفة ديناميكية باستخدام new ويحررها باستخدام delete[]. ما عليك سوى تخصيص مصفوفة النتائج داخل دالتك باستخدام new double[4] وإعادتها. ملاحظة: ستتعلم المؤشرات والذاكرة الديناميكية باستخدام new بالتفصيل في قسم لاحق. هنا، ما عليك سوى اتباع النمط الموضح new double[4].

النهج المقترح:
  1. هيّئ sum = 0 وmax = arr[0] وmin = arr[0].
  2. كرّر من i = 0 إلى i < size، واجمع القيم وحدّث max/min حسب الحاجة.
  3. احسب المتوسط باستخدام sum / size.
  4. خصّص مصفوفة جديدة باستخدام new double[4]، وخزّن النتائج الأربعة بالترتيب، ثم أعدها.

جرّب بنفسك

#include <iostream>

double* calculateStats(double arr[], int size) {
    // ستحتاج إلى حساب 4 قيم قبل تخزينها في newArr
    // هيّئ المتغيرات sum (تبدأ من 0)، وmax، وmin (يبدآن من arr[0])
    // استخدم حلقة for للمرور على المصفوفة
    // داخل الحلقة:
    //   - أضف كل عنصر إلى sum
    //   - قارن كل عنصر مع max وحدّث max إذا كان العنصر أكبر
    //   - قارن كل عنصر مع min وحدّث min إذا كان العنصر أصغر
    // احسب average = sum / size (بعد الحلقة)
    

    double* newArr = new double[4];
    newArr[0] = sum;
    newArr[1] = average;
    newArr[2] = max;
    newArr[3] = min;

    return newArr;
}

int main() {
    int n;

    std::cin >> n;
    std::cin.ignore();
    double arr[n];

    for (int i = 0; i < n; i++) {
        double val;
        std::cin >> val;
        arr[i] = val;
    }

    double* stats = calculateStats(arr, n);
    std::cout << "Sum: " << stats[0] << std::endl;
    std::cout << "Average: " << stats[1] << std::endl;
    std::cout << "Maximum: " << stats[2] << std::endl;
    std::cout << "Minimum: " << stats[3] << std::endl;
    delete[] stats;
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم C++ عبر الإنترنت