التعليم السعودي
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول
جدول المحتويات
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول
المطلوب
هذا التمرين مقسّم إلى ثلاثة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
- أكتب برنامج يطلب من المستخدم إعطائه عددين, العدد الأول يمثل عدد أسطر مصفوفة ذات بعدين إسمها
matrix
و العدد الثاني يمثل عدد أعمدتها.
خزن العدد الأول في متغير إسمهa
و العدد الثاني في متغير إسمهb
.
إنتبه: يجب أن يدخل المستخدم عددين أكبر من صفر, لأن عدد عناصر المصفوفة لا يمكن أن يكون صفر أو أقل من صفر. - ثم يطلب من المستخدم إدخال قيمة لكل عنصر من عناصر المصفوفة
matrix
. - ثم يعرض له جميع قيم عناصر المصفوفة
matrix
.
النتيجة المطلوبة
لنفترض أن المستخدم أراد عدد الأسطر يساوي 3 و الأعمدة 4, و أدخل القيم ( 1, 2, 3, 4, 5, 6, 7 ,8, 9, 10, 11, 12 ) عند التشغيل.
كود الجافا
- package matrix;
- import java.util.Scanner;
- public class Matrix {
- public static void main (String[] args) {
- Scanner input = new Scanner(System.in);
- int a;
- int b;
- int[][] matrix;
- do
- {
- System.out.print(“Enter the number of rows: “);
- a = input.nextInt();
- }
- while ( a <= 0 );
- do
- {
- System.out.print(“Enter the number of columns: “);
- b = input.nextInt();
- }
- while ( b <= 0 );
- matrix = new int[a] [b] ;
- System.out.print(“\n”);
- for (int i=0; i<a; i++)
- {
- for (int j=0; j<b; j++)
- {
- System.out.print(“Enter matrix[“ +i+ “][“ +j+ “]: “);
- matrix[i] [j] = input.nextInt();
- }
- System.out.print(“\n”);
- }
- for (int i=0; i<a; i++)
- {
- for (int j=0; j<b; j++)
- {
- System.out.print(matrix[i] [j] + “\t”);
- }
- System.out.print(“\n”);
- }
- System.out.print(“\n”);
- }
- }
شرح الكود
- int a;
- int b;
- int[][] matrix;
-
- هنا قمنا بتجهيز المتغير
a
و الذي سنستخدمه لتخزين عدد أسطر المصفوفة, و هو أول شيء سيطلب من المستخدم إدخاله. - و المتغير
b
و الذي سنستخدمه لتخزين عدد أعمدة المصفوفة, و هو ثاني شيء سيطلب من المستخدم إدخاله. - و المصفوفة
matrix
و التي لم يتم تحديد عدد عناصرها.
- هنا قمنا بتجهيز المتغير
- do
- {
- System.out.print(“Enter the number of rows: “);
- a = input.nextInt();
- }
- while ( a <= 0 );
-
- هنا سيطلب من المستخدم إدخال عدد أسطر المصفوفة, بعدها سيتم تخزينه في المتغير
a
- بعدها سيتم فحص قيمة المتغير
a
. إذا كانت أصغر أو تساوي 0, سيطلب من المستخدم إدخال العدد من جديد. - إذاً هذه الحلقة تضمن أن لا يقوم المستخدم بإدخال عدد أصغر أو يساوي 0 كعدد أسطر المصفوفة.
- هنا سيطلب من المستخدم إدخال عدد أسطر المصفوفة, بعدها سيتم تخزينه في المتغير
- do
- {
- System.out.print(“Enter the number of columns: “);
- b = input.nextInt();
- }
- while ( b <= 0 );
-
- هنا سيطلب من المستخدم إدخال عدد أعمدة المصفوفة, بعدها سيتم تخزينه في المتغير
b
- بعدها سيتم فحص قيمة المتغير
b
. إذا كانت أصغر أو تساوي 0, سيطلب من المستخدم إدخال العدد من جديد. - إذاً هذه الحلقة تضمن أن لا يقوم المستخدم بإدخال عدد أصغر أو يساوي 0 كعدد أعمدة المصفوفة.
- هنا سيطلب من المستخدم إدخال عدد أعمدة المصفوفة, بعدها سيتم تخزينه في المتغير
- matrix = new int[a] [b] ;
-
- هنا سيتم تحديد قيمة المتغيرين
a
وb
اللتين أدخلهما المستخدم كعدد أسطر و أعمدة المصفوفةmatrix
- هنا سيتم تحديد قيمة المتغيرين
- for (int i=0; i<a; i++)
- {
- for (int j=0; j<b; 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<a; i++)
- {
- for (int j=0; j<b; j++)
- {
- System.out.print(matrix[i] [j] + “\t”);
- }
- System.out.print(“\n”);
- }
- هنا قمنا بإنشاء الحلقتين
i
وj
لعرض جميع قيم المصفوفة. - الحلقة
i
للإنتقال من سطر إلى آخر في المصفوفة, و الحلقةj
للإنتقال من عمود إلى آخر في كل سطر في المصفوفة. - هنا في كل دورة من دورات الحلقة
i
سيتم إنشاء حلقةj
لعرض قيمة جميع العناصر الموجودة في نفس السطر. - في كل دورة من دورات الحلقة
j
سيتم عرض قيمة عنصر, ثم وضع بعض المسافات الفارغة بسبب الرمز\t
- بعد توقف الحلقة
j
, أي بعد عرض قيم جميع العناصر الموجودة في نفس السطر, سيتم النزول على سطر جديد بسبب الرمز\n
المصدر: التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين الأول – المناهج السعودية