المبادئ التي عليك اتباعها أو تقليدها مع المصفوفات ذات البعدين
تذكر المبادئ التالية في كل مرة تتعامل فيها مع مصفوفة ذات بعدين:
إستخدم حلقتين 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 تتألف من 3 أسطر و 5 أعمدة.
ثم يطلب من المستخدم إدخال قيم لها.
ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
بعدها يطلب من المستخدم إدخال أي عدد ليرى إذا كان موجوداً في المصفوفة, و يخزنه في المتغير x. إنتبه: يكفي أن يعرف المستخدم إذا كان العدد الذي يبحث عنه موجوداً مرة واحدة في المصفوفة.
في الأخير يعرض للمستخدم ناتج عملية البحث, أي إذا وجد نفس قيمة المتغير x في المصفوفة matrix أم لا.
ملاحظة: قم بتعريف العدادين i و j مرة واحدة في بداية البرنامج.
نرجو منك الإنتقال لدورة البرمجة للمبتدئين الجديدة التي أنشأنها كبديل أفضل لهذه الدورة ففي تلك الدورة قمنا بتبسيط الشرح أكثر و جعلناك قادر على تجربة الكود بشكل مباشر في موقعنا.