Menu
Coddy logo textTech
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;
  • أوجد average لعناصر في array:
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 تأخذ array من القيم من النوع double وحجم array كمدخلات، وتنفّذ العمليات التالية:

  1. تحسب sum لجميع العناصر في array.
  2. تحسب المتوسط الحسابي لعناصر array.
  3. تجد العنصر الأقصى في array.
  4. تجد العنصر الأدنى في array.

يجب أن تُرجع الدالة array من القيم من النوع double، وتحتوي بالترتيب على sum والمتوسط والأقصى والأدنى.


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

النهج المقترح:
  1. هيّئ sum = 0 وmax = arr[0] وmin = arr[0].
  2. نفّذ loop من i = 0 إلى i < size، مع تجميع sum وتحديث max/min عند الحاجة.
  3. احسب المتوسط باعتباره sum / size.
  4. خصّص array جديدة باستخدام 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++ عبر الإنترنت