ما هي المصفوفات Arrays؟
المصفوفة هي نوع من أنواع هياكل البيانات، وتستخدم لتخزين أكثر من عنصر بيانات له نفس نوع البيانات، يتم تخصيص لعناصر المصفوفة مواقع ذاكرة متجاورة، إذ أن العدد الإجمالي للعناصر في المصفوفة يسمى طول أو حجم المصفوفة، ويتم الوصول إلى عناصر المصفوفة من خلال ما يسمى بالفهرس، ويستخدم الفهرس أيضاً لمعالجة قيم عناصر المصفوفة.
تمتلك جميع لغات البرمجة تقريبًا نفس المفهوم عن المصفوفات، ولكن لها طُرقًا مختلفة للتعريف بها، وملئها بالعناصر، مع ذلك، ستظل ثلاثة أجزاء شائعة دائمًا في جميع عمليات ملأ المصفوفة بالعناصر وهم:
- اسم المصفوفة: ضروري لسهولة الرجوع إلى مجموعة العناصر.
- نوع البيانات العناصر: ضروري لفحص النوع وسلامة البيانات.
- العناصر: وهي قيم البيانات الموجودة في المصفوفة.
لماذا نحتاج المصفوفة؟
فيما يلي بعض أسباب استخدام المصفوفات:
- المصفوفات هي الأفضل لتخزين قيم متعددة في متغير واحد.
- تعتبر المصفوفات أفضل في معالجة العديد من القيم بسهولة وسرعة.
- يعتبر ترتيب العناصر والبحث أسهل في المصفوفات.
المصفوفة في لغات البرمجة:
المصفوفة في لغة بايثون:
تختلف المصفوفات في لغة (Python) عن القوائم، حيث يمكن أن تحتوي القوائم على عناصر مصفوفة من أنواع البيانات مختلفة، بينما يمكن أن تحتوي المصفوفات على عناصر من نفس نوع البيانات فقط، يوجد في لغة (Python) وحدة منفصلة للتعامل مع المصفوفات تسمى “array”، والتي تحتاج إلى استيرادها قبل البدء في العمل عليها، ويجب أن تحتوي المصفوفة على أرقام حقيقية مثل أعداد من نوع “integers” و “floats”، لكن لا يُسمح بالـ (strings)، يوضح الكود التالي كيف يمكنك إنشاء مصفوفة أعداد صحيح في بايثون لتخزين رصيد الحساب:
import array balance = array.array('i', [300,200,100]) print(balance)
المصفوفة في ++C:
في لغة (++C) أكثر مرونة من لغة (Python) عندما يتعلق الأمر بإنشاء المصفوفات، يوضح الكود التالي كيف يمكنك إنشاء مصفوفة عدد صحيح في لغة (++C) لتخزين رصيد الحساب:
#include <iostream> using namespace std; int main() { int balance[3] = { 300, 200, 100 }; for (int i = 0; i < 3; i++) { cout << "value of i: " << balance[i] << endl; } return 0; }
المصفوفة في لغة Java:
دعنا ننشئ كود في لغة (Java)، في هذا البرنامج سنقبل حجم وقيمة عناصر المصفوفة من المستخدم:
import java.util.Scanner; public class Elements { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int arr[] = new int[10]; for(int i= 0 ; i<10 ; ++i) { arr[i] = (i+1)*10; } System.out.print("Elements in the array: "); for(int j=0;j<10;j++) { System.out.print(arr[j]+" "); } }}