Menu
CoddyTech
flag Ar iconالعربيةdown icon

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

جزء من قسم الأساسيات في رحلة 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 وحدّثه إذا كان أكبر
    //   - قارن كل عنصر مع 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++ عبر الإنترنت