المطلوب
هذا التمرين مقسّم إلى ثلاثة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة.ثم يطلب من المستخدم إدخال قيم لها.
ثم يعرض له ناتج جمع قيم عناصر كل عامود فيها.
كود الجافا
import java.util.Scanner;
public class Matrix {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
int[][] matrix = new int[3][3];
int S;
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
{
System.out.print("Enter matrix["+i+"]["+j+"]: ");
matrix[i][j] = input.nextInt();
}
System.out.print("\n");
}
for (int i=0; i<3; i++)
{
S = 0;
for (int j=0; j<3; j++)
{
S = S + matrix[j][i];
}
System.out.print("the sum of elements in column ["+i+"] is : " +S+ "\n");
}
System.out.print("\n");
}
}
شرح الكود
int[][] matrix = new int[3][3]; int S;
هنا قمنا بتجهيز المصفوفة matrix و حددنا أنها تتألف من 3 أسطر و 3 أعمدة.
و المتغير S الذي سنستخدمه لاحقاً لتخزين ناتج جمع القيم الموجودة في كل عامود.
ملاحظة: لم نضع القيمة 0 كقيمة أولية للمتغير S الآن لأننا قبل حساب ناتج قيمة العناصر الموجودة في كل عامود سنضع فيه القيمة 0 كقيمة أولية.
for (int i=0; i<3; i++)
{
for (int j=0; j<3; 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<3; i++)
{
S = 0;
for (int j=0; j<3; j++)
{
S = S + matrix[j][i];
}
System.out.print("the sum of elements in column ["+i+"] is : " +S+ "\n");
}
هنا قمنا بإنشاء الحلقتين i و j للوصول إلى جميع قيم عناصر المصفوفة.
ملاحظة: الإختلاف الوحيد بين هذا التمرين و التمرين الثالث, هو أننا كتبنا matrix[j][i] بدلاً من matrix[i][j] مما جعلنا نمر على عناصر المصفوفة عاموداً عاموداً.
إذاً هنا سيتم الإنتقال من من سطر إلى آخر بواسطة الحلقة j و من عامود إلى آخر بواسطة الحلقة i.
في كل دورة من دورات الحلقة i سيتم حساب ناتج جمع القيم الموجودة في نفس العامود, ثم طباعة الناتج كالتالي:
سيتم تصفير قيمة المتغير
Sقبل البدء بحساب ناتج جمع قيم العناصر الموجودة في نفس العامود حتى لا يتم إضافة ناتج جمع القيم الموجودة في العامود القديم على ناتج القيم الموجودة في العامود الحالي في كل مرة يتم فيها الإنتقال إلى عامود جديد.بعدها سيتم إنشاء الحلقة
jللمرور على جميع العناصر الموجودة في نفس العامود.في كل دورة من دورات الحلقة
jسيتم إضافة قيمة عنصر من العناصر الموجودة في نفس العامود على قيمة المتغيرS.عند توقف الحلقة
jسيكون ناتج جمع جميع العناصر الموجودة في نفس العامود موجود في المتغيرS.لذلك سيتم عرض قيمة المتغير
Sكناتج جمع جميع العناصر الموجودة في نفس العامود.
لاحظ كيف سيتم إضافة قيم العناصر الموجودة في نفس العامود على قيمة المتغير S :
عندما تكون قيمة العداد
iتساوي 0 و قيمة العدادjتساوي 0, سيتم إضافة قيمة العنصرmatrix[0][0]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 0 و قيمة العدادjتساوي 1, سيتم إضافة قيمة العنصرmatrix[1][0]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 0 و قيمة العدادjتساوي 2, سيتم إضافة قيمة العنصرmatrix[2][0]على قيمة المتغيرS.
إلى هنا يكون قد تم حساب ناتج جمع قيم العناصر الموجودة في العامود الأول.عندما تكون قيمة العداد
iتساوي 1 و قيمة العدادjتساوي 0, سيتم إضافة قيمة العنصرmatrix[0][1]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 1 و قيمة العدادjتساوي 1, سيتم إضافة قيمة العنصرmatrix[1][1]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 1 و قيمة العدادjتساوي 2, سيتم إضافة قيمة العنصرmatrix[2][1]على قيمة المتغيرS.
إلى هنا يكون قد تم حساب ناتج جمع قيم العناصر الموجودة في العامود الثاني.عندما تكون قيمة العداد
iتساوي 2 و قيمة العدادjتساوي 0, سيتم إضافة قيمة العنصرmatrix[0][2]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 2 و قيمة العدادjتساوي 1, سيتم إضافة قيمة العنصرmatrix[1][2]على قيمة المتغيرS.عندما تكون قيمة العداد
iتساوي 2 و قيمة العدادjتساوي 2, سيتم إضافة قيمة العنصرmatrix[2][2]على قيمة المتغيرS.
إلى هنا يكون قد تم حساب ناتج جمع قيم العناصر الموجودة في العامود الثالث.




محرر الويب
نظام الألوان
محول الوحدات
محلل عناوين الشبكات