Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المؤشر والمصفوفة الديناميكية

جزء من قسم Logic & Flow في رحلة C++ على Coddy — الدرس 56 من 56.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يستعرض إدارة الذاكرة الديناميكية من خلال بناء نظام مرن لتخزين ومعالجة الأرقام. سيختبر هذا التحدي فهمك للمصفوفات الديناميكية، وتخصيص الذاكرة، والتعامل مع المصفوفات، والتنظيف الصحيح للذاكرة.

سيتم توفير المدخلات التالية:

  • عدد صحيح size يمثل عدد الأعداد الصحيحة المراد تخزينها
  • ثم عدد size من الأعداد الصحيحة التي تمثل الأرقام المراد تخزينها في المصفوفة الديناميكية

يجب أن يقوم برنامجك بما يلي:

  1. قراءة الحجم من المدخلات
  2. تخصيص مصفوفة من الأعداد الصحيحة ديناميكيًا باستخدام new[] بالحجم المحدد
  3. قراءة الأعداد الصحيحة من المدخلات وتخزينها في المصفوفة المخصصة ديناميكيًا
  4. حساب مجموع كل الأرقام في المصفوفة
  5. إيجاد القيمة العظمى في المصفوفة
  6. طباعة النتائج بالتنسيق المحدد
  7. إلغاء تخصيص الذاكرة بشكل صحيح باستخدام delete[]

استخدم تنسيق المخرجات الدقيق التالي:

Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]

تذكر أن تخصيص الذاكرة الديناميكي يسمح لك بإنشاء مصفوفات يتم تحديد حجمها في وقت التشغيل بناءً على مدخلات المستخدم. استخدم new int[size] لتخصيص المصفوفة والوصول إلى العناصر باستخدام تدوين المصفوفة array[index]. بعد الانتهاء من استخدام المصفوفة، يجب عليك استدعاء delete[] array لتحرير الذاكرة المخصصة ومنع تسرب الذاكرة. توجد المصفوفة في الـ heap وستظل موجودة حتى تقوم بإلغاء تخصيصها صراحةً.

جرّب بنفسك

#include <iostream>
using namespace std;

int main() {
    // قراءة حجم المصفوفة
    int size;
    cin >> size;
    
    // TODO: اكتب الكود الخاص بك هنا
    // 1. تخصيص مصفوفة ديناميكياً باستخدام new[]
    // 2. قراءة الأعداد الصحيحة وتخزينها في المصفوفة
    // 3. حساب مجموع كل الأرقام
    // 4. العثور على القيمة القصوى
    // 5. لا تنسَ إلغاء تخصيص الذاكرة باستخدام delete[]
    
    // إخراج النتائج (استبدلها بالمتغيرات الفعلية)
    cout << "Array size: " << size << endl;
    cout << "Sum: " << /* متغير المجموع */ << endl;
    cout << "Maximum: " << /* متغير القيمة القصوى */ << endl;
    
    return 0;
}

جميع دروس Logic & Flow