الخوارزمياتالتعامل مع المصفوفات ذات البعدين
- المبادئ التي عليك اتباعها أو تقليدها مع المصفوفات ذات البعدين
- تمارين شاملة حول المصفوفات ذات البعدين
المبادئ التي عليك اتباعها أو تقليدها مع المصفوفات ذات البعدين
تذكر المبادئ التالية في كل مرة تتعامل فيها مع مصفوفة ذات بعدين:
- إستخدم حلقتين
forمتداخلتين في حال أردت الوصول لجميع عناصر المصفوفة. - الحلقة التي تجعلك تنتقل من سطر لآخر قم بتسمية العداد فيها
iو إجعلها تبدأ من 0 إلى عدد الأسطر فيها ناقص 1. - الحلقة التي تجعلك تنتقل من عامود لآخر قم بتسمية العداد فيها
jو إجعلها تبدأ من 0 إلى عدد الأعمدة فيها ناقص 1. - إستخدم الرمز
\tفي حال كنت تريد عرض عناصر المصفوفة كجدول لأنه يضع مسافات فارغة بشكل تلقائي بين كل قيمتين على نفس السطر. - إستخدم الحلقة
whileأوdo whileفي حال لم تكن تريد الوصول لجميع عناصر المصفوفة. - إستخدم الحلقة
do whileفي حال كنت تريد جعل المستخدم يدخل قيمة تستوفي شرط معين.
ستفهم كل هذه المبادئ من التمارين.
طريقة الوصول إلى قيم عناصر المصفوفة سطراً - سطراً أو عاموداً - عاموداً
- في حال أردت الوصول إلى عناصر المصفوفة سطراً سطراً, عليك جعل الحلقة الخارجية تنتقل من سطر لآخر و الحلقة الداخلية تنتقل من عامود لآخر.
- في حال أردت الوصول إلى عناصر المصفوفة عاموداً عاموداً, عليك جعل الحلقة الخارجية تنتقل من عامود لآخر و الحلقة الداخلية تنتقل من سطر لآخر.
المثال التالي يوضح كيف تعرّف الحلقتين i و j في حال كنت تريد التنقل في المصفوفة سطراً - سطراً أو عاموداً - عاموداً.
كود الجافا
public class Matrix { public static void main (String[] args) { // قمنا بتعريف مصفوفة تتألف من 3 أسطر و 3 أعمدة int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; // هنا قمنا بعرض القيم الموجودة في كل سطر في المصفوفة for (int i=0; i<3; i++) { System.out.print("Row ["+i+"] values: "); for (int j=0; j<3; j++) { System.out.print( matrix[i][j] + " " ); } System.out.print( "\n" ); } System.out.print( "\n" ); // هنا قمنا بعرض القيم الموجودة في كل جدول في المصفوفة for (int j=0; j<3; j++) { System.out.print("Column ["+j+"] values: "); for (int i=0; i<3; i++) { System.out.print( matrix[i][j] + " " ); } System.out.print( "\n" ); } } }
نتيجة التشغيل
تذكر
يمكنك دائماً كتابة الكود بأكثر من طريقة و الحصول على نفس النتيجة.
بمعنى أخر, يوجد طريقة أخرى للتنقل بين عناصر المصفوفة غير التلاعب بأمكان الحلقات i و j.
الطريقة الأخرى ستتعلمها من التمارين الموضوعة ضمن هذا الدرس.
تمارين شاملة حول المصفوفات ذات البعدين
التمرين الأول
- أكتب برنامج يطلب من المستخدم إعطائه عددين, العدد الأول يمثل عدد أسطر مصفوفة ذات بعدين إسمها
matrixو العدد الثاني يمثل عدد أعمدتها.
خزن العدد الأول في متغير إسمهaو العدد الثاني في متغير إسمهb.
إنتبه: يجب أن يدخل المستخدم عددين أكبر من صفر, لأن عدد عناصر المصفوفة لا يمكن أن يكون صفر أو أقل من صفر. - ثم يطلب من المستخدم إدخال قيمة لكل عنصر من عناصر المصفوفة
matrix. - ثم يعرض له جميع قيم عناصر المصفوفة
matrix.
التمرين الثاني
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم ناتج جمع جميع قيم عناصرها.
التمرين الثالث
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم ناتج جمع قيم العناصر الموجودة في كل سطر فيها.
التمرين الرابع
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم ناتج جمع قيم العناصر الموجودة في كل عامود فيها.
التمرين الخامس
أكتب نفس البرنامج السابق بطريقة أخرى. إذاً إفعل التالي:
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم ناتج جمع قيم العناصر الموجودة في كل عامود فيها.
التمرين السادس
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 4 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- ثم يقوم بتخزين جميع القيم الموجودة في المصفوفة
matrixبداخل مصفوفة ذات بعد واحد, قم بتسميتهاvector. - ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويهم المصفوفة
vectorعلى نفس السطر.
التمرين السابع
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 4 أسطر و 4 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
إنتبه: نريد هذه المصفوفة أن تحتوي فقط على قيم أكبر أو تساوي صفر مثل8,5,4,43,10. - ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- بعدها يقوم بجمع قيم جميع العناصر الموجودة على الـ Diagonal, فوق الـ Diagonal, و تحت الـ Diagonal.
- في الأخير يعرض للمستخدم ناتج الجمع.
التمرين الثامن
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 5 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- بعدها يطلب من المستخدم إدخال أي عدد ليرى كم مرة هذا العدد موجود في المصفوفة, و يخزنه في المتغير
x. - في الأخير يعرض للمستخدم ناتج عملية البحث, أي كم مرة وجد نفس قيمة المتغير
xفي المصفوفةmatrix.
التمرين التاسع
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 5 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- بعدها يطلب من المستخدم إدخال أي عدد ليرى إذا كان موجوداً في المصفوفة, و يخزنه في المتغير
x.
إنتبه: يكفي أن يعرف المستخدم إذا كان العدد الذي يبحث عنه موجوداً مرة واحدة في المصفوفة. - في الأخير يعرض للمستخدم ناتج عملية البحث, أي إذا وجد نفس قيمة المتغير
xفي المصفوفةmatrixأم لا.
ملاحظة: قم بتعريف العدادين i و j مرة واحدة في بداية البرنامج.
التمرين العاشر
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
- بعدها يقوم بجمع قيم العناصر الموجودة في كل سطر, و يخزن ناتج الجمع في مصفوفة ذات بعد واحد إسمها
vector. - في الأخير يعرض للمستخدم القيم التي أصبحت تحتويها المصفوفة
vector.
ملاحظة: قم بتعريف العدادين i و j مرة واحدة في بداية البرنامج.