الخوارزمياتالتعامل مع المصفوفات ذات البعدين
- المبادئ التي عليك اتباعها أو تقليدها مع المصفوفات ذات البعدين
- تمارين شاملة حول المصفوفات ذات البعدين
المبادئ التي عليك اتباعها أو تقليدها مع المصفوفات ذات البعدين
تذكر المبادئ التالية في كل مرة تتعامل فيها مع مصفوفة ذات بعدين:
- إستخدم حلقتين
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
مرة واحدة في بداية البرنامج.