التعليم السعودي
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
جدول المحتويات
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن
المطلوب
هذا التمرين مقسّم إلى خمسة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
- أكتب برنامج يعرّف مصفوفة إسمها
matrix
تتألف من 3 أسطر و 5 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- بعدها يطلب من المستخدم إدخال أي عدد ليرى كم مرة هذا العدد موجود في المصفوفة, و يخزنه في المتغير
x
. - في الأخير يعرض للمستخدم ناتج عملية البحث, أي كم مرة وجد نفس قيمة المتغير
x
في المصفوفةmatrix
.
النتيجة المطلوبة
لنفترض أن المستخدم أدخل قيم عشوائية في المصفوفة, ثم أدخل العدد 3 ليعرف كم مرة توجد القيمة 3 في المصفوفة.
كود الجافا
- package matrix;
- import java.util.Scanner;
- public class Matrix {
- public static void main (String[] args) {
- Scanner input = new Scanner(System.in);
- int[][] matrix = new int[3] [5] ;
- int x;
- int found = 0;
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- System.out.print(“Enter matrix[“+i+“][“+j+“]: “);
- matrix[i] [j] = input.nextInt();
- }
- System.out.print(“\n”);
- }
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- System.out.print(matrix[i] [j] + “\t”);
- }
- System.out.print(“\n”);
- }
- System.out.print(“\nEnter any number: “);
- x = input.nextInt();
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- if( matrix[i] [j] == x )
- {
- found = found + 1;
- }
- }
- }
- System.out.print(x + ” is exist “ +found+ ” times in the Matrix \n”);
- }
- }
شرح الكود
- int[][] matrix = new int[3] [5] ;
- int x;
- int found = 0;
-
- هنا قمنا بتجهيز المصفوفة
matrix
و حددنا أنها تتألف من 3 أسطر و 5 أعمدة. - و المتغير
x
سنستخدمه لتخزين القيمة (أي العدد) التي سيدخلها المستخدم لاحقاً للبحث عنها في المصفوفة. - و المتغير
found
و أعطيناه القيمة 0 كقيمة أولية لأننا سنستخدمه لاحقاً لحساب كم مرة تم إيجاد القيمة التي بحث عنها المستخدم.
- هنا قمنا بتجهيز المصفوفة
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- System.out.print(“Enter matrix[“+i+“][“+j+“]: “);
- matrix[i] [j] = input.nextInt();
- }
- System.out.print(“\n”);
- }
-
- هنا قمنا بإنشاء الحلقتين
i
وj
لجعل المستخدم يدخل قيمة لكل عنصر في المصفوفة. - الحلقة
i
للإنتقال من سطر إلى آخر في المصفوفة, و الحلقةj
للإنتقال من عمود إلى آخر في كل سطر في المصفوفة. - هنا في كل دورة من دورات الحلقة
i
سيتم إنشاء حلقةj
للمرور على جميع العناصر الموجودة في نفس السطر. - في كل دورة من دورات الحلقة
j
سيطلب من المستخدم إدخال قيمة لعنصر, ثم سيتم تخزينها في هذا العنصر. - بعد توقف الحلقة
j
, أي بعد إعطاء قيم لجميع العناصر الموجودة في نفس السطر, سيتم النزول على سطر جديد بسبب الرمز\n
- هنا قمنا بإنشاء الحلقتين
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- System.out.print(matrix[i] [j] + “\t”);
- }
- System.out.print(“\n”);
- }
-
- هنا قمنا بإنشاء الحلقتين
i
وj
لعرض جميع قيم المصفوفةmatrix
- الحلقة
i
للإنتقال من سطر إلى آخر فيها, و الحلقةj
للإنتقال من عمود إلى آخر في كل سطر فيها. - هنا في كل دورة من دورات الحلقة
i
سيتم إنشاء حلقةj
لعرض قيمة جميع العناصر الموجودة في نفس السطر. - في كل دورة من دورات الحلقة
j
سيتم عرض قيمة عنصر, ثم وضع بعض المسافات الفارغة بسبب الرمز\t
- بعد توقف الحلقة
j
, أي بعد عرض قيم جميع العناصر الموجودة في نفس السطر, سيتم النزول على سطر جديد بسبب الرمز\n
- هنا قمنا بإنشاء الحلقتين
- System.out.print(“\nEnter any number: “);
- x = input.nextInt();
-
- هنا سيطلب من المستخدم إدخال أي عدد, و بعدها سيتم تخزينه في المتغير
x
- هنا سيطلب من المستخدم إدخال أي عدد, و بعدها سيتم تخزينه في المتغير
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<5; j++)
- {
- if( matrix[i] [j] == x )
- {
- found = found + 1;
- }
- }
- }
-
- هنا أنشانا الحلقتين
i
وj
للمرور على جميع عناصر المصفوفة. - سيتم مقارنة قيمة كل عنصر في المصفوفة مع قيمة المتغير
x
أي ( مع العدد الذي أدخله المستخدم ). - في كل مرة تكون فيها قيمة العنصر تساوي قيمة المتغير
x
سيتم زيادة قيمة العدادfound
واحداً - إذاً المتغير
found
سيمثل عدد وجود قيمة المتغيرx
في المصفوفةmatrix
- هنا أنشانا الحلقتين
- System.out.print(x + ” is exist “ +found+ ” times in the Matrix \n”);
- هنا قمنا بعرض قيمة المتغير
found
لعرض نتيجة البحث, أي لعرض كم مرة قد وجدت القيمة المتغيرx
في المصفوفة.
المصدر: التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الثامن – المناهج السعودية