مفهوم المصفوفات

المصفوفة: تعني Array في البرمجة , و المصفوفة عبارة عن كائن يحتوي مجموعة عناصر من نفس النوع تتخزن بجوار بعضها في الذاكرة , بمعنى آخر المصفوفة عبارة عن كائن يمكنه تخزين عدة قيم من نفس النوع.

عناصر المصفوفة تتميز عن بعضها من خلال رقم محدد يعطى لكل عنصر يسمى index. أول عنصر فيها يتم تخزينه في الـ index رقم 0.

عدد عناصر المصفوفة ثابت, أي بمجرد أن قمت بتحديده لا يمكنك تغييره من جديد, لكنك تستطيع تغيير قيم هذه العناصر متى شئت.

 

فوائد الـ Array

  • تقليل عدد المتغيرات المتشابهة, فمثلاً إذا كنا نريد تعريف 10متغيرات نوعهم int, نقوم بتعريف مصفوفة واحدة تتألف من 10 عناصر.
  • تطوير الكود, إذا قمت بتخزين المعلومات داخل مصفوفة, تستطيع تعديلهم, مقارنتهم أو جلبهم كلهم دفعة واحدة بكود صغير جداً باستخدام الحلقات.
  • تستطيع الوصول لأي عنصر من خلال الـ index.

 

المشكلة الوحيدة في الـ Array

  • حجمها ثابت, أي عندما تقوم بتعريف مصفوفة و تحدد عدد عناصرها, لا يمكنك تغيير حجمها لاحقاً, أي لا يمكن حذف عنصر أو زيادة واحد جديد.

تعريف مصفوفة

تعريف مصفوفة جديدة يسمى Declare Array , يمكنك تعريف مصفوفة جديدة بثلاث طرق:

// يمكنك تعريفها هكذا
;datatype[] arrayRefVar

// أو هكذا
;datatype []arrayRefVar

// أو هكذا
;[]datatype arrayRefVar

  • datatype: هو نوع المصفوفة التي سيتم تعريفها.
  • []: هو من كم بعد تتألف المصفوفة.

أمثلة

// هنا قمنا بتعريف مصفوفة ذات بعد واحد, نوعها double
double[] doubleArray;

// هنا قمنا بتعريف مصفوفة ذات بعدين, نوعها int
;int[][] intArray

// هنا قمنا بتعريف مصفوفة ذات بعد واحد, نوعها String
;String[] stringArray

إنشاء مصفوفة

إنشاء مصفوفة جديدة يعني Create Array  , إذا أردت أن تعرف أي مصفوفة فعندك طريقتين:

  • تنشئ المصفوفة و تعطيها القيم لاحقاً.
  • تنشئ المصفوفة و تعطيها القيم مباشرةً عند تعريفها.

طريقة إنشاء مصفوفة و إعطائها القيم لاحقاً

;[arrayRefVar = new datatype[size

  • :arrayRefVar: هو إسم المصفوفة التي يجب أن تكون معرفة سابقاً.
  • new: تقوم بتوليد قيم أولية لجميع عناصر المصفوفة, تعطيهم القيمة صفر كقيمة أولية.
  • datatype: هو نوع القيم الأولية التي سيتم توليدها.
  • size: هو عدد عناصر المصفوفة.

طريقة إنشاء مصفوفة و إعطائها قيم أولية مباشرةً عند إنشائها

;{arrayRefVar = { value0, value1, …, valuek

  • arrayRefVar: هو إسم المصفوفة التي يجب أن تكون معرفة سابقاً.
  • value0و value1 و valuek: عبارة عن القيم التي نعطيها للمصفوفة.

 

مثال شامل حول التعامل مع المصفوفات

سنقوم الآن بكتابة برنامج شامل لكل المفاهيم التي ذكرناها في هذا الدرس, الخطوات التي سنقوم بتنفيذها هي التالية:

  1. تعريف مصفوفة فارغة نوعها int, إسمها numbers, تتألف من 5 عناصر.
  2. عرض قيمها الأولية باستخدام حلقة.
  3. إعطاء قيمة لكل عنصر فيها.
  4. عرض جميع قيمها من جديد باستخام حلقة

// 1- هنا قمنا بتعريف المصفوفة
;[int[] numbers = new int[5

// 2- هنا قمنا بعرض قيم جميع عناصرها
}(++for(int i=0; i<numbers.length; i
;([System.out.println(“numbers[” + i + “]: ” + numbers[i
{

// 3- هنا قمنا يتغيير قيم جميع عناصرها
;numbers[0] = 1000
;numbers[1] = 2000
;numbers[2] = 3000
;numbers[3] = 4000
;numbers[4] = 5000

;()System.out.println

// 4- هنا قمنا بعرض قيم جميع عناصرها
}(++for(int i=0; i<numbers.length; i
;([System.out.println(“numbers[” + i + “]: ” + numbers[i
{

سنحصل على النتيجة التالية عند التشغيل :

 

numbers[0]: 0
numbers[1]: 0
numbers[2]: 0
numbers[3]: 0
numbers[4]: 0

numbers[0]: 1000
numbers[1]: 2000
numbers[2]: 3000
numbers[3]: 4000
numbers[4]: 5000