التعليم السعودي
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
جدول المحتويات
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس
المطلوب
هذا التمرين مقسّم إلى خمسة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
- أكتب برنامج يعرّف مصفوفة إسمها
matrix
تتألف من 3 أسطر و 4 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- ثم يقوم بتخزين جميع القيم الموجودة في المصفوفة
matrix
بداخل مصفوفة ذات بعد واحد, قم بتسميتهاvector
. - ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويهم المصفوفة
vector
على نفس السطر.
النتيجة المطلوبة
لنفترض أن المستخدم أدخل القيم ( 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[][] matrix = new int[3] [4] ;
- int[] vector = new int[3*4] ;
- int k=0;
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<4; 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<4; j++)
- {
- vector[k] = matrix[i] [j] ;
- k = k + 1 ;
- }
- }
- System.out.print(“matrix contain these values: \n”);
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<4; j++)
- {
- System.out.print(matrix[i] [j] + “\t”);
- }
- System.out.print(“\n”);
- }
- System.out.print(“\nvector contain these values: \n”);
- for (int i=0; i<vector.length; i++)
- {
- System.out.print(vector[i] + “\t”);
- }
- System.out.print(“\n\n”);
- }
- }
شرح الكود
- int[][] matrix = new int[3] [4] ;
- int[] vector = new int[3*4] ;
- int k=0;
-
- هنا قمنا بتجهيز المصفوفة
matrix
و حددنا أنها تتألف من 3 أسطر و 4 أعمدة ( 3 * 4 = 12 عنصر ). - و المصفوفة
vector
و حددنا أنها تتألف من 3 * 4 عناصر أيضاً, أي من 12 عنصر لأن عدد عناصرها يجب أن يساوي عدد عناصر المصفوفةmatrix
- و المتغير
k
الذي أعطيناه القيمة 0 كقيمة أولية لأننا سنستخدمه لاحقاً كعداد للوصول إلى عناصر المصفوفةvector
- هنا قمنا بتجهيز المصفوفة
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<4; j++)
- {
- System.out.print(“Enter matrix[“+i+“][“+j+“]: “);
- matrix[i] [j] = input.nextInt();
- }
- System.out.print(“\n”);
- }
-
- هنا قمنا بإنشاء الحلقتين
i
وj
لجعل المستخدم يدخل قيمة لكل عنصر في المصفوفةmatrix
- الحلقة
i
للإنتقال من سطر إلى آخر في المصفوفة, و الحلقةj
للإنتقال من عمود إلى آخر في كل سطر في المصفوفة. - هنا في كل دورة من دورات الحلقة
i
سيتم إنشاء حلقةj
للمرور على جميع العناصر الموجودة في نفس السطر. - في كل دورة من دورات الحلقة
j
سيطلب من المستخدم إدخال قيمة لعنصر, ثم سيتم تخزينها في هذا العنصر. - بعد توقف الحلقة
j
, أي بعد إعطاء قيم لجميع العناصر الموجودة في نفس السطر, سيتم النزول على سطر جديد بسبب الرمز\n
- هنا قمنا بإنشاء الحلقتين
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<4; j++)
- {
- vector[k] = matrix[i] [j] ;
- k = k + 1 ;
- }
- }
-
- هنا أنشأنا الحلقتين
i
وj
لتخزين قيمة كل عنصر موجود في المصفوفةmatrix
في المصفوفةvector
- الحلقة
i
للإنتقال من سطر إلى آخر فيها, و الحلقةj
للإنتقال من عمود إلى آخر في كل سطر فيها. - المتغير
k
إستخدمناه كعداد بالنسبة للمصفوفةvector
فبواسطته إستطعنا الوصول إلى عناصر المصفوفةvector
بشكل متوازي مع عناصر المصفوفةmatrix
- إذاً في كل دورة من دورات الحلقة
j
سيتم وضع قيمة العنصر الحالي في المصفوفةmatrix
في العنصر التالي في المصفوفةvector
لأن قيمة العدادk
تزيد واحد في كل مرة.
- هنا أنشأنا الحلقتين
- System.out.print(“matrix contain these values: \n”);
- for (int i=0; i<3; i++)
- {
- for (int j=0; j<4; 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(“\nvector contain these values: \n”);
- for (int i=0; i<vector.length; i++)
- {
- System.out.print(vector[i] + “\t”);
- }
- هنا أنشأنا حلقة تبدأ من index العنصر الأول في المصفوفة
vector
إلى آخر عنصر موجود فيها بهدف عرض قيمة كل عنصر فيها. - في كل دورة من دورات الحلقة
i
سيطبع للمستخدم أن العنصر رقم كذا قيمته كذا.
المصدر: التعامل مع المصفوفة ذات البعدين في الخوارزميات – التمرين السادس – المناهج السعودية