التعليم السعودي

تعريف مصفوفة ذات بعد واحد في الخوارزميات 

جدول المحتويات

تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
المناهج السعودية
تعريف مصفوفة ذات بعد واحد في الخوارزميات

طرق تعريف مصفوفة ذات بعد واحد

لتعريف مصفوفة ذات بعد واحد, يوجد طريقتين:

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

معلومة تقنية

في لغة جافا لا يمكن تغيير عدد عناصر المصفوفة بعد أن تم تحديده.

طريقة تعريف مصفوفة ذات بعد واحد و إعطائها القيم لاحقاً

لتعريف مصفوفة من أي نوع سواء intfloat , double , String… ), نضع فقط الرمزين [] بعد تحديد نوع البيانات التي ستخزنها, و بهذه الطريقة يفهم الكمبيوتر أننا نريد تعريف مصفوفة ذات بعد واحد لها نوع محدد.

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

مثال

int[] vector = new int[5] ;
  • هنا قمنا بتعريف مصفوفة ذات بعد واحد, إسمها vector, نوعها int و تتألف من 5 عناصر.

شرح الكود

  • كلمة new int نضعها من أجل لغة جافا, و هي تضع القيمة 0 كقيمة إفتراضية لجميع عناصر المصفوفة بشكل تلقائي, و السبب أن جميع عناصر المصفوفة يجب أن تحتوي على قيمة أولية عند إنشائها, لأننا إذا أردنا مثلاً أن نعرض جميع قيم عناصر المصفوفة لنرى ماذا تحتوي و كان أحد عناصرها لا يحتوي على قيمة سيسبب ذلك مشاكل في البرنامج.
  • إذاً, إذا طبعنا قيم جميع عناصر المصفوفة و وجدناها كلها تساوي 0 أو 0.0 أو null ) فذلك يعني أننا لم نغير قيمة أي عنصر بعد.
    لا تقلق ستجد هذه الفكرة مشروحة بتفصيل لاحقاً في آخر الدرس.

شكل المصفوفة في الذاكرة

قواعد ثابتة في جميع لغات البرمجة

  • عندما نعرّف مصفوفة ذات بعد واحد تقوم الذاكرة بترقيم الخانات بالترتيب, و تبدأ من الرقم 0.
  • العنصر الأول دائماً يتم تخزينه في الخانة رقم 0.
  • العنصر الأخير دائماً يتم تخزينه في الخانة رقم vector.length-1. أي عدد جميع العناصر ناقص 1.
  • تعطي الذاكرة القيمة صفر لجميع العناصر كقيمة أولية إذا لم نضع لها قيم عند تعريفها, أي إذا لم نغير قيمة العنصر سنجد أن قيمته تساوي صفر.

طريقة الوصول لعناصر المصفوفة

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

طريقة إعطاء قيم لعناصر المصفوفة

المثال التالي يوضح طريقة إعطاء قيمة لعناصر المصفوفة vector.

مثال

vector[0] = 7;
vector[1] = 40;
vector[2] = -20;
  • هنا قمنا بتغيير قيمة العنصر الأول و الثاني و الثالث.

شكل المصفوفة في الذاكرة

طريقة عرض القيم المخزنة في عناصر المصفوفة

المثال التالي يوضح طريقة عرض قيم عناصر المصفوفة vector.

مثال

System.out.print(“vector[0] : “ + vector[0] + “\n” );
System.out.print(“vector[1] : “ + vector[1] + “\n” );
System.out.print(“vector[2] : “ + vector[2] + “\n” );
System.out.print(“vector[3] : “ + vector[3] + “\n” );
System.out.print(“vector[4] : “ + vector[4] + “\n” );
  • هنا قمنا بعرض قيم جميع العناصر الموجودة في المصفوفة vector حتى نتأكد إذا كانت القيم قد تغيرت.

نتيجة التشغيل

البرنامج كاملاً

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector = new int[5] ;                               // هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر
  5.         vector[0] = 7;                                           // هنا قمنا بتغيير قيمة العنصر الأول
  6.         vector[1] = 40;                                          // هنا قمنا بتغيير قيمة العنصر الثاني
  7.         vector[2] = -20;                                         // هنا قمنا بتغيير قيمة العنصر الثالث
  8.         System.out.print(“vector[0] : “ + vector[0] + “\n” );     // هنا قمنا بعرض قيمة العنصر الأول
  9.         System.out.print(“vector[1] : “ + vector[1] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثاني
  10.         System.out.print(“vector[2] : “ + vector[2] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثالث
  11.         System.out.print(“vector[3] : “ + vector[3] + “\n” );     // هنا قمنا بعرض قيمة العنصر الرابع
  12.         System.out.print(“vector[4] : “ + vector[4] + “\n” );     // هنا قمنا بعرض قيمة العنصر الخامس
  13.     }
  14. }

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

إذا أردنا إدخال القيم مباشرةً عند تعريف المصفوفة, بعد رمز المساواة = نضع الرمزين { } و بداخلهم نضع القيم التي نريدها, و نضع فاصلة بين كل قيمتين.
ملاحظة: سنعيد نفس البرنامج السابق بطريقة أخرى.
الآن, لنفترض أننا نريد تعريف مصفوفة إسمها vector مع إعطائها 5 قيم أولية مباشرةً عند إنشائها.

طريقة تعريف المصفوفة مع إعطاء عناصرها قيم أولية

مثال

int[] vector = {7, 40, -20, 0, 0};
  • هكذا نعّرف مصفوفة نوعها int و نعطيها القيم مباشرةً عند إنشائها.
  • هنا لأننا وضعنا فيها 5 قيم مباشرةً عند إنشائها, أصبحت المصفوفة أيضاً تتألف من 5 عناصر و يمكننا تغير القيم إذا أردنا لاحقاً, لكننا لا نستطيع تغير عدد العناصر.

شكل المصفوفة في الذاكرة

طريقة إعطاء قيم لعناصر المصفوفة

المثال التالي يوضح طريقة إعطاء قيمة لعناصر المصفوفة vector.

مثال

vector[0] = 3;
vector[3] = 121;
vector[4] = 10;
  • هنا قمنا بتغيير قيمة العنصر الأول و الرابع و الخامس.

شكل المصفوفة في الذاكرة

طريقة عرض القيم المخزنة في عناصر المصفوفة

المثال التالي يوضح طريقة عرض قيم عناصر المصفوفة vector.

مثال

System.out.print(“vector[0] : “ + vector[0] + “\n” );
System.out.print(“vector[1] : “ + vector[1] + “\n” );
System.out.print(“vector[2] : “ + vector[2] + “\n” );
System.out.print(“vector[3] : “ + vector[3] + “\n” );
System.out.print(“vector[4] : “ + vector[4] + “\n” );
  • هنا قمنا بعرض قيم جميع العناصر الموجودة في المصفوفة vector حتى نتأكد إذا كانت القيم قد تغيرت.

نتيجة التشغيل

البرنامج كاملاً

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector = {7, 40, -20, 0, 0};                       // هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر و أعطيناها القيم مباشرة عند إنشائها
  5.         vector[0] = 121;                                         // هنا قمنا بتغيير قيمة العنصر الأول
  6.         vector[3] = 10;                                          // هنا قمنا بتغيير قيمة العنصر الرابع
  7.         vector[4] = 3;                                           // هنا قمنا بتغيير قيمة العنصر الخامس
  8.         System.out.print(“vector[0] : “ + vector[0] + “\n” );     // هنا قمنا بعرض قيمة العنصر الأول
  9.         System.out.print(“vector[1] : “ + vector[1] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثاني
  10.         System.out.print(“vector[2] : “ + vector[2] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثالث
  11.         System.out.print(“vector[3] : “ + vector[3] + “\n” );     // هنا قمنا بعرض قيمة العنصر الرابع
  12.         System.out.print(“vector[4] : “ + vector[4] + “\n” );     // هنا قمنا بعرض قيمة العنصر الخامس
  13.     }
  14. }

الوصول إلى عناصر المصفوفة ذات البعد الواحد بواسطة حلقة

للوصول إلى جميع عناصر المصفوفة vector بسرعة و بكود أقل مهما كان حجم المصفوفة نستخدم الحلقات.
فمثلاً تستطيع إستخدام الحلقة for لإعطاء قيم لجميع العناصر الموجودة في المصفوفة أو لعرض جميع قيمها دفعة واحدة.

مثال

في المثال التالي, قمنا بتعريف مصفوفة إسمها vector تتألف من 10 عناصر.
بعدها جعلنا المستخدم يدخل قيمة لكل عنصر من عناصرها.
في الأخير قمنا بعرض جميع القيم التي أدخلها المستخدم في المصفوفة.

نتيجة التشغيل

  • إذا قمت بإدخال القيم ( 12345678910 ) عند تشغيل البرنامج, ستكون نتيجة التشغيل كالتالي.

كود الجافا

  1. package vector;
  2. import java.util.Scanner;
  3. public class Vector {
  4.     public static void main (String[] args) {
  5.         Scanner input = new Scanner(System.in);
  6.         // هنا قمنا بتعريف مصفوفة من 10 عناصر
  7.         int[] vector = new int[10] ;
  8.         // من خلال هذه الحلقة سيطلب من المستخدم إدخال قيمة لجميع العناصر
  9.         for(int i=0; i<10; i++)
  10.         {
  11.             System.out.print(“Enter vector[“+i+“]: “);
  12.             vector[i] = input.nextInt();
  13.         }
  14.         System.out.print(“\n”);
  15.         // من خلال هذه الحلقة سيعرض للمستخدم قيم جميع العناصر التي تحتويها المصفوفة
  16.         for(int i=0; i<10; i++)
  17.         {
  18.             System.out.print(“vector[“+i+“]: “ +vector[i] + “\n”);
  19.         }
  20.         System.out.print(“\n”);
  21.     }
  22. }

شرح الكود

  1.         int[] vector = new int[10] ;
    • هنا قمنا بتعريف مصفوفة تتألف من 10 عناصر.
  1.         for(int i=0; i<10; i++)
  2.         {
  3.             System.out.print(“Enter vector[“+i+“]: “);
  4.             vector[i] = input.nextInt();
  5.         }
    • هنا في كل دورة من دورات الحلقة i  سيطلب من المستخدم إدخال قيمة في عنصر محدد من عناصر المصفوفة و بعدها سيتم وضع القيمة التي أدخلها في هذا العنصر كالتالي:
      • عندما تكون قيمة العداد i تساوي 0, سيطلب من المستخدم إدخال قيمة للعنصر vector[0], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[0]
      • عندما تكون قيمة العداد i تساوي 1, سيطلب من المستخدم إدخال قيمة للعنصر vector[1], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[1]
      • عندما تكون قيمة العداد i تساوي 2, سيطلب من المستخدم إدخال قيمة للعنصر vector[2], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[2]
      • عندما تكون قيمة العداد i تساوي 3, سيطلب من المستخدم إدخال قيمة للعنصر vector[3], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[3]
      • عندما تكون قيمة العداد i تساوي 4, سيطلب من المستخدم إدخال قيمة للعنصر vector[4], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[4]
      • عندما تكون قيمة العداد i تساوي 5, سيطلب من المستخدم إدخال قيمة للعنصر vector[5], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[5]
      • عندما تكون قيمة العداد i تساوي 6, سيطلب من المستخدم إدخال قيمة للعنصر vector[6], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[6]
      • عندما تكون قيمة العداد i تساوي 7, سيطلب من المستخدم إدخال قيمة للعنصر vector[7], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[7]
      • عندما تكون قيمة العداد i تساوي 8, سيطلب من المستخدم إدخال قيمة للعنصر vector[8], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[8]
      • عندما تكون قيمة العداد i تساوي 9, سيطلب من المستخدم إدخال قيمة للعنصر vector[9], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[9]
  1.         for(int i=0; i<10; i++)
  2.         {
  3.             System.out.print(“vector[“+i+“]: “ +vector[i] + “\n”);
  4.         }
  • هنا في كل دورة من دورات الحلقة i  سيتم عرض قيمة عنصر محدد من عناصر المصفوفة. سيعرض له أن العنصر رقم كذا قيمته كذا كالتالي:
    • عندما تكون قيمة العداد i تساوي 0, سيطبع له أن قيمة العنصر vector[0] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 1, سيطبع له أن قيمة العنصر vector[1] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 2, سيطبع له أن قيمة العنصر vector[2] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 3, سيطبع له أن قيمة العنصر vector[3] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 4, سيطبع له أن قيمة العنصر vector[4] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 5, سيطبع له أن قيمة العنصر vector[5] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 6, سيطبع له أن قيمة العنصر vector[6] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 7, سيطبع له أن قيمة العنصر vector[7] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 8, سيطبع له أن قيمة العنصر vector[8] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 9, سيطبع له أن قيمة العنصر vector[9] تساوي القيمة التي أدخلها له سابقاً.

شكل المصفوفة في الذاكرة قبل و بعد

  • في البداية تم إنشاءها في الذاكرة كما في الصورة التالية.
  • بعد أن قمنا بإدخال القيم فيها, أصبح شكلها في الذاكرة كما في الصورة التالية.

القيم الإفتراضية التي تعطى لعناصر المصفوفة ذات البعد الواحد إذا تم تعريفها باستخدم الكلمة new

قلنا في بداية الدرس أنه لتعريف مصفوفة من أي نوع سواء intfloat , double , String… ), نضع فقط الرمزين [] بعد تحديد نوع البيانات التي ستخزنها, و بهذه الطريقة يفهم الكمبيوتر أننا نريد تعريف مصفوفة ذات بعد واحد لها نوع محدد.
الآن سنتفق على أن كلمة new مهمتها إنشاء المصفوفة في الذاكرة و إعطاء القيمة صفر كقيمة أولية لجميع عناصرها.
النقطة التي نريدك أن تنتبه إليها هي أن الكلمة new تعطي القيمة صفر التي تناسب نوع المصفوفة.

مثال

في المثال التالي, قمنا بتعريف 3 مصفوفات, و كل مصفوفة تخزن نوع بيانات مختلف.

  • المصفوفة الأولى نوعها int, إسمها vector_int, و تتألف من 3 عناصر.
  • المصفوفة الثانية نوعها double, إسمها vector_double, و تتألف من 3 عناصر.
  • المصفوفة الثالثة نوعها String, إسمها vector_String, و تتألف من 3 عناصر.

بعدها قمنا بعرض القيم الإفتراضية التي تم وضعها لعناصر هذه المصفوفات.

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector_int = new int[3] ;
  5.         double[] vector_double = new double[3] ;
  6.         String[] vector_String = new String[3] ;
  7.         System.out.print(“vector_int[0] : “ + vector_int[0] + “\n” );
  8.         System.out.print(“vector_int[1] : “ + vector_int[1] + “\n” );
  9.         System.out.print(“vector_int[2] : “ + vector_int[2] + “\n\n” );
  10.         System.out.print(“vector_double[0] : “ + vector_double[0] + “\n” );
  11.         System.out.print(“vector_double[1] : “ + vector_double[1] + “\n” );
  12.         System.out.print(“vector_double[2] : “ + vector_double[2] + “\n\n” );
  13.         System.out.print(“vector_String[0] : “ + vector_String[0] + “\n” );
  14.         System.out.print(“vector_String[1] : “ + vector_String[1] + “\n” );
  15.         System.out.print(“vector_String[2] : “ + vector_String[2] + “\n\n” );
  16.     }
  17. }

نتيجة التشغيل

شكل المصفوفات التي قمنا بتعريفها في الذاكرة

  • المصفوفة vector_int نوعها int, لذلك تم إعطاء عناصرها القيمة 0 كقيمة أولية.
  • المصفوفة vector_double نوعها double, لذلك تم إعطاء عناصرها القيمة 0.0 كقيمة أولية.
  • المصفوفة vector_String نوعها String, لذلك تم إعطاء عناصرها القيمة null كقيمة أولية.

الآن, أنت فهمت جيداً كيف يمكنك تعريف مصفوفة ذات بعد واحد و الوصول إلى عناصرها و تغيير و عرض قيمها.

 
المصدر: تعريف مصفوفة ذات بعد واحد في الخوارزميات – المناهج السعودية

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

التعليم السعودي

تعريف مصفوفة ذات بعد واحد في الخوارزميات 

جدول المحتويات

تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
تعريف مصفوفة ذات بعد واحد في الخوارزميات
المناهج السعودية
تعريف مصفوفة ذات بعد واحد في الخوارزميات

طرق تعريف مصفوفة ذات بعد واحد

لتعريف مصفوفة ذات بعد واحد, يوجد طريقتين:

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

معلومة تقنية

في لغة جافا لا يمكن تغيير عدد عناصر المصفوفة بعد أن تم تحديده.

طريقة تعريف مصفوفة ذات بعد واحد و إعطائها القيم لاحقاً

لتعريف مصفوفة من أي نوع سواء intfloat , double , String… ), نضع فقط الرمزين [] بعد تحديد نوع البيانات التي ستخزنها, و بهذه الطريقة يفهم الكمبيوتر أننا نريد تعريف مصفوفة ذات بعد واحد لها نوع محدد.

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

مثال

int[] vector = new int[5] ;
  • هنا قمنا بتعريف مصفوفة ذات بعد واحد, إسمها vector, نوعها int و تتألف من 5 عناصر.

شرح الكود

  • كلمة new int نضعها من أجل لغة جافا, و هي تضع القيمة 0 كقيمة إفتراضية لجميع عناصر المصفوفة بشكل تلقائي, و السبب أن جميع عناصر المصفوفة يجب أن تحتوي على قيمة أولية عند إنشائها, لأننا إذا أردنا مثلاً أن نعرض جميع قيم عناصر المصفوفة لنرى ماذا تحتوي و كان أحد عناصرها لا يحتوي على قيمة سيسبب ذلك مشاكل في البرنامج.
  • إذاً, إذا طبعنا قيم جميع عناصر المصفوفة و وجدناها كلها تساوي 0 أو 0.0 أو null ) فذلك يعني أننا لم نغير قيمة أي عنصر بعد.
    لا تقلق ستجد هذه الفكرة مشروحة بتفصيل لاحقاً في آخر الدرس.

شكل المصفوفة في الذاكرة

قواعد ثابتة في جميع لغات البرمجة

  • عندما نعرّف مصفوفة ذات بعد واحد تقوم الذاكرة بترقيم الخانات بالترتيب, و تبدأ من الرقم 0.
  • العنصر الأول دائماً يتم تخزينه في الخانة رقم 0.
  • العنصر الأخير دائماً يتم تخزينه في الخانة رقم vector.length-1. أي عدد جميع العناصر ناقص 1.
  • تعطي الذاكرة القيمة صفر لجميع العناصر كقيمة أولية إذا لم نضع لها قيم عند تعريفها, أي إذا لم نغير قيمة العنصر سنجد أن قيمته تساوي صفر.

طريقة الوصول لعناصر المصفوفة

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

طريقة إعطاء قيم لعناصر المصفوفة

المثال التالي يوضح طريقة إعطاء قيمة لعناصر المصفوفة vector.

مثال

vector[0] = 7;
vector[1] = 40;
vector[2] = -20;
  • هنا قمنا بتغيير قيمة العنصر الأول و الثاني و الثالث.

شكل المصفوفة في الذاكرة

طريقة عرض القيم المخزنة في عناصر المصفوفة

المثال التالي يوضح طريقة عرض قيم عناصر المصفوفة vector.

مثال

System.out.print(“vector[0] : “ + vector[0] + “\n” );
System.out.print(“vector[1] : “ + vector[1] + “\n” );
System.out.print(“vector[2] : “ + vector[2] + “\n” );
System.out.print(“vector[3] : “ + vector[3] + “\n” );
System.out.print(“vector[4] : “ + vector[4] + “\n” );
  • هنا قمنا بعرض قيم جميع العناصر الموجودة في المصفوفة vector حتى نتأكد إذا كانت القيم قد تغيرت.

نتيجة التشغيل

البرنامج كاملاً

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector = new int[5] ;                               // هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر
  5.         vector[0] = 7;                                           // هنا قمنا بتغيير قيمة العنصر الأول
  6.         vector[1] = 40;                                          // هنا قمنا بتغيير قيمة العنصر الثاني
  7.         vector[2] = -20;                                         // هنا قمنا بتغيير قيمة العنصر الثالث
  8.         System.out.print(“vector[0] : “ + vector[0] + “\n” );     // هنا قمنا بعرض قيمة العنصر الأول
  9.         System.out.print(“vector[1] : “ + vector[1] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثاني
  10.         System.out.print(“vector[2] : “ + vector[2] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثالث
  11.         System.out.print(“vector[3] : “ + vector[3] + “\n” );     // هنا قمنا بعرض قيمة العنصر الرابع
  12.         System.out.print(“vector[4] : “ + vector[4] + “\n” );     // هنا قمنا بعرض قيمة العنصر الخامس
  13.     }
  14. }

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

إذا أردنا إدخال القيم مباشرةً عند تعريف المصفوفة, بعد رمز المساواة = نضع الرمزين { } و بداخلهم نضع القيم التي نريدها, و نضع فاصلة بين كل قيمتين.
ملاحظة: سنعيد نفس البرنامج السابق بطريقة أخرى.
الآن, لنفترض أننا نريد تعريف مصفوفة إسمها vector مع إعطائها 5 قيم أولية مباشرةً عند إنشائها.

طريقة تعريف المصفوفة مع إعطاء عناصرها قيم أولية

مثال

int[] vector = {7, 40, -20, 0, 0};
  • هكذا نعّرف مصفوفة نوعها int و نعطيها القيم مباشرةً عند إنشائها.
  • هنا لأننا وضعنا فيها 5 قيم مباشرةً عند إنشائها, أصبحت المصفوفة أيضاً تتألف من 5 عناصر و يمكننا تغير القيم إذا أردنا لاحقاً, لكننا لا نستطيع تغير عدد العناصر.

شكل المصفوفة في الذاكرة

طريقة إعطاء قيم لعناصر المصفوفة

المثال التالي يوضح طريقة إعطاء قيمة لعناصر المصفوفة vector.

مثال

vector[0] = 3;
vector[3] = 121;
vector[4] = 10;
  • هنا قمنا بتغيير قيمة العنصر الأول و الرابع و الخامس.

شكل المصفوفة في الذاكرة

طريقة عرض القيم المخزنة في عناصر المصفوفة

المثال التالي يوضح طريقة عرض قيم عناصر المصفوفة vector.

مثال

System.out.print(“vector[0] : “ + vector[0] + “\n” );
System.out.print(“vector[1] : “ + vector[1] + “\n” );
System.out.print(“vector[2] : “ + vector[2] + “\n” );
System.out.print(“vector[3] : “ + vector[3] + “\n” );
System.out.print(“vector[4] : “ + vector[4] + “\n” );
  • هنا قمنا بعرض قيم جميع العناصر الموجودة في المصفوفة vector حتى نتأكد إذا كانت القيم قد تغيرت.

نتيجة التشغيل

البرنامج كاملاً

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector = {7, 40, -20, 0, 0};                       // هنا قمنا بتعريف مصفوفة تتألف من 5 عناصر و أعطيناها القيم مباشرة عند إنشائها
  5.         vector[0] = 121;                                         // هنا قمنا بتغيير قيمة العنصر الأول
  6.         vector[3] = 10;                                          // هنا قمنا بتغيير قيمة العنصر الرابع
  7.         vector[4] = 3;                                           // هنا قمنا بتغيير قيمة العنصر الخامس
  8.         System.out.print(“vector[0] : “ + vector[0] + “\n” );     // هنا قمنا بعرض قيمة العنصر الأول
  9.         System.out.print(“vector[1] : “ + vector[1] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثاني
  10.         System.out.print(“vector[2] : “ + vector[2] + “\n” );     // هنا قمنا بعرض قيمة العنصر الثالث
  11.         System.out.print(“vector[3] : “ + vector[3] + “\n” );     // هنا قمنا بعرض قيمة العنصر الرابع
  12.         System.out.print(“vector[4] : “ + vector[4] + “\n” );     // هنا قمنا بعرض قيمة العنصر الخامس
  13.     }
  14. }

الوصول إلى عناصر المصفوفة ذات البعد الواحد بواسطة حلقة

للوصول إلى جميع عناصر المصفوفة vector بسرعة و بكود أقل مهما كان حجم المصفوفة نستخدم الحلقات.
فمثلاً تستطيع إستخدام الحلقة for لإعطاء قيم لجميع العناصر الموجودة في المصفوفة أو لعرض جميع قيمها دفعة واحدة.

مثال

في المثال التالي, قمنا بتعريف مصفوفة إسمها vector تتألف من 10 عناصر.
بعدها جعلنا المستخدم يدخل قيمة لكل عنصر من عناصرها.
في الأخير قمنا بعرض جميع القيم التي أدخلها المستخدم في المصفوفة.

نتيجة التشغيل

  • إذا قمت بإدخال القيم ( 12345678910 ) عند تشغيل البرنامج, ستكون نتيجة التشغيل كالتالي.

كود الجافا

  1. package vector;
  2. import java.util.Scanner;
  3. public class Vector {
  4.     public static void main (String[] args) {
  5.         Scanner input = new Scanner(System.in);
  6.         // هنا قمنا بتعريف مصفوفة من 10 عناصر
  7.         int[] vector = new int[10] ;
  8.         // من خلال هذه الحلقة سيطلب من المستخدم إدخال قيمة لجميع العناصر
  9.         for(int i=0; i<10; i++)
  10.         {
  11.             System.out.print(“Enter vector[“+i+“]: “);
  12.             vector[i] = input.nextInt();
  13.         }
  14.         System.out.print(“\n”);
  15.         // من خلال هذه الحلقة سيعرض للمستخدم قيم جميع العناصر التي تحتويها المصفوفة
  16.         for(int i=0; i<10; i++)
  17.         {
  18.             System.out.print(“vector[“+i+“]: “ +vector[i] + “\n”);
  19.         }
  20.         System.out.print(“\n”);
  21.     }
  22. }

شرح الكود

  1.         int[] vector = new int[10] ;
    • هنا قمنا بتعريف مصفوفة تتألف من 10 عناصر.
  1.         for(int i=0; i<10; i++)
  2.         {
  3.             System.out.print(“Enter vector[“+i+“]: “);
  4.             vector[i] = input.nextInt();
  5.         }
    • هنا في كل دورة من دورات الحلقة i  سيطلب من المستخدم إدخال قيمة في عنصر محدد من عناصر المصفوفة و بعدها سيتم وضع القيمة التي أدخلها في هذا العنصر كالتالي:
      • عندما تكون قيمة العداد i تساوي 0, سيطلب من المستخدم إدخال قيمة للعنصر vector[0], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[0]
      • عندما تكون قيمة العداد i تساوي 1, سيطلب من المستخدم إدخال قيمة للعنصر vector[1], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[1]
      • عندما تكون قيمة العداد i تساوي 2, سيطلب من المستخدم إدخال قيمة للعنصر vector[2], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[2]
      • عندما تكون قيمة العداد i تساوي 3, سيطلب من المستخدم إدخال قيمة للعنصر vector[3], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[3]
      • عندما تكون قيمة العداد i تساوي 4, سيطلب من المستخدم إدخال قيمة للعنصر vector[4], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[4]
      • عندما تكون قيمة العداد i تساوي 5, سيطلب من المستخدم إدخال قيمة للعنصر vector[5], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[5]
      • عندما تكون قيمة العداد i تساوي 6, سيطلب من المستخدم إدخال قيمة للعنصر vector[6], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[6]
      • عندما تكون قيمة العداد i تساوي 7, سيطلب من المستخدم إدخال قيمة للعنصر vector[7], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[7]
      • عندما تكون قيمة العداد i تساوي 8, سيطلب من المستخدم إدخال قيمة للعنصر vector[8], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[8]
      • عندما تكون قيمة العداد i تساوي 9, سيطلب من المستخدم إدخال قيمة للعنصر vector[9], بعدها سيتم تخزين القيمة التي أدخلها في العنصر vector[9]
  1.         for(int i=0; i<10; i++)
  2.         {
  3.             System.out.print(“vector[“+i+“]: “ +vector[i] + “\n”);
  4.         }
  • هنا في كل دورة من دورات الحلقة i  سيتم عرض قيمة عنصر محدد من عناصر المصفوفة. سيعرض له أن العنصر رقم كذا قيمته كذا كالتالي:
    • عندما تكون قيمة العداد i تساوي 0, سيطبع له أن قيمة العنصر vector[0] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 1, سيطبع له أن قيمة العنصر vector[1] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 2, سيطبع له أن قيمة العنصر vector[2] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 3, سيطبع له أن قيمة العنصر vector[3] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 4, سيطبع له أن قيمة العنصر vector[4] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 5, سيطبع له أن قيمة العنصر vector[5] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 6, سيطبع له أن قيمة العنصر vector[6] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 7, سيطبع له أن قيمة العنصر vector[7] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 8, سيطبع له أن قيمة العنصر vector[8] تساوي القيمة التي أدخلها له سابقاً.
    • عندما تكون قيمة العداد i تساوي 9, سيطبع له أن قيمة العنصر vector[9] تساوي القيمة التي أدخلها له سابقاً.

شكل المصفوفة في الذاكرة قبل و بعد

  • في البداية تم إنشاءها في الذاكرة كما في الصورة التالية.
  • بعد أن قمنا بإدخال القيم فيها, أصبح شكلها في الذاكرة كما في الصورة التالية.

القيم الإفتراضية التي تعطى لعناصر المصفوفة ذات البعد الواحد إذا تم تعريفها باستخدم الكلمة new

قلنا في بداية الدرس أنه لتعريف مصفوفة من أي نوع سواء intfloat , double , String… ), نضع فقط الرمزين [] بعد تحديد نوع البيانات التي ستخزنها, و بهذه الطريقة يفهم الكمبيوتر أننا نريد تعريف مصفوفة ذات بعد واحد لها نوع محدد.
الآن سنتفق على أن كلمة new مهمتها إنشاء المصفوفة في الذاكرة و إعطاء القيمة صفر كقيمة أولية لجميع عناصرها.
النقطة التي نريدك أن تنتبه إليها هي أن الكلمة new تعطي القيمة صفر التي تناسب نوع المصفوفة.

مثال

في المثال التالي, قمنا بتعريف 3 مصفوفات, و كل مصفوفة تخزن نوع بيانات مختلف.

  • المصفوفة الأولى نوعها int, إسمها vector_int, و تتألف من 3 عناصر.
  • المصفوفة الثانية نوعها double, إسمها vector_double, و تتألف من 3 عناصر.
  • المصفوفة الثالثة نوعها String, إسمها vector_String, و تتألف من 3 عناصر.

بعدها قمنا بعرض القيم الإفتراضية التي تم وضعها لعناصر هذه المصفوفات.

كود الجافا

  1. package vector;
  2. public class Vector {
  3.     public static void main (String[] args) {
  4.         int[] vector_int = new int[3] ;
  5.         double[] vector_double = new double[3] ;
  6.         String[] vector_String = new String[3] ;
  7.         System.out.print(“vector_int[0] : “ + vector_int[0] + “\n” );
  8.         System.out.print(“vector_int[1] : “ + vector_int[1] + “\n” );
  9.         System.out.print(“vector_int[2] : “ + vector_int[2] + “\n\n” );
  10.         System.out.print(“vector_double[0] : “ + vector_double[0] + “\n” );
  11.         System.out.print(“vector_double[1] : “ + vector_double[1] + “\n” );
  12.         System.out.print(“vector_double[2] : “ + vector_double[2] + “\n\n” );
  13.         System.out.print(“vector_String[0] : “ + vector_String[0] + “\n” );
  14.         System.out.print(“vector_String[1] : “ + vector_String[1] + “\n” );
  15.         System.out.print(“vector_String[2] : “ + vector_String[2] + “\n\n” );
  16.     }
  17. }

نتيجة التشغيل

شكل المصفوفات التي قمنا بتعريفها في الذاكرة

  • المصفوفة vector_int نوعها int, لذلك تم إعطاء عناصرها القيمة 0 كقيمة أولية.
  • المصفوفة vector_double نوعها double, لذلك تم إعطاء عناصرها القيمة 0.0 كقيمة أولية.
  • المصفوفة vector_String نوعها String, لذلك تم إعطاء عناصرها القيمة null كقيمة أولية.

الآن, أنت فهمت جيداً كيف يمكنك تعريف مصفوفة ذات بعد واحد و الوصول إلى عناصرها و تغيير و عرض قيمها.

 
المصدر: تعريف مصفوفة ذات بعد واحد في الخوارزميات – المناهج السعودية

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى