If you do not find what you're looking for, you can use more accurate words.
المصفوفة هي تركيبة من البيانات يتم إنشائها بشكل برمجي في الحاسوب، يمكنها تخزين العديد من العناصر من نفس النوع و كل عنصر يحمل قيمة، يتم حجز مساحة من الذاكرة لتحمل قيمة و مكان كل عنصر بشكل متسلسل، المصفوفة لها سعة ثابتة و لا تتغير خلال وقت التنفيذ لهذا يجب تحديد سعة المصفوفة خلال وقت البرمجة. المصفوفة يمكن أن تحتوي بيانات ببعد واحد أو أكثر . المصفوفة الثنائية البعد يمكن تصورها على أنها مصفوفات داخل اخرى . فالبعد الأول يمكن اعتباره المصفوفة الرئيسية أما البعد الثاني فهو مصفوفة داخل البعد الأول . كل عنصر من المصفوفة له حجم خاص به و حسب نوع المصفوفة، السعة الكلية للمصفوفة عبارة عن حجم العنصر مضروب في عدد العناصر .
يتم تمثيل العناصر في الذاكرة في شكل مناطق متجاورة ، هذا ما يجعل عمليات الإدراج والحذف مستحيلة، إلا إذا قمت بإنشاء مصفوفة جديد . فمن الضروري نسخ جميع العناصر من الجدول الأصلي إلى الجدول الجديد، ومن ثم تحرير مساحة الذاكرة المخصصة للمجموعة القديمة، أو يمكن استخدام المصفوفة الديناميكية. في بعض لغات البرمجة اسم المصفوفة هو مؤشر لأول عنصر في الفهرس . توجد حالات قد تشكل مشكلة في النظام أو ثغرة أمنية أو خطأ في سير البرنامج و هي الإشارة إلى عنصر خارج المجموعة . على سبيل المثال. إذا تم تصميم مصفوفة تحتوي على 50 عدد صحيح وقمت بكتابة قيمة إلى المؤشر أكبر من 50 ، فهذه القيمة ستكتب خارج ذاكرة المخصصة للمصفوفة، ولكن في بعض الأحيان نظام التشغيل يمنع هذا . سعة المصفوفة المحدود له ميزة ثبات زمن الوصول إلى قيمة العنصر، بغض النظر عن مكان العنصر المطلوب. ويرجع ذلك إلى أن العناصر هي مجموعة متجاورة في الذاكرة .
كل عنصر من المصفوفة يمثل متغير مستقل بذاته، فيمكن أن يخزن قيمة أو يسترجعها بواسطة استخدام المؤشر العددي (قيمة غير سالبة) المقابلة لموقع ذلك العنصر. قيمة المؤشر الأول في المصفوفة قد يكون صفرا أو واحد، وهذا حسب لغة البرمجة .
تستخدم المصفوفات لتمثيل الهياكل المعقدة للبيانات مثل :
أو في الخوارزميات على سبيل المثال - خوارزمية بحث ثنائي .
الامثلة التالية بلغة البرمجة سي (c) .
int mydata[10]; // إنشاء مصفوفة بسعة 10 عناصر mydata[0] = 22; // إسناد قيمة '22' لأول عنصر في المصفوفة mydata[1] = 1; mydata[2] = 11; mydata[3] = 2; mydata[9] = 33; // إسناد قيمة '33' لأخر عنصر في المصفوفة
int mydata[10] [10] // عشرة مصفوفات بسعة عشرة عناصر mydata[0] [5] = 64; //إسناد قيمة للعنصر الخامس في المصفوفة الأولى
int mydata[5] = {6, 3335, 42, 85, 50};