الخوارزمياتالتعامل مع المصفوفة ذات البعدين - التمرين الثاني
المطلوب
هذا التمرين مقسّم إلى ثلاثة أفكار رئيسية, عليك اتباع التقسيم التالي خطوة خطوة حتى تنجز البرنامج.
- أكتب برنامج يعرّف مصفوفة إسمها
matrix
تتألف من 3 أسطر و 3 أعمدة. - ثم يطلب من المستخدم إدخال قيم لها.
- ثم يعرض للمستخدم ناتج جمع جميع قيم عناصرها.
النتيجة المطلوبة
لنفترض أن المستخدم أدخل 9 قيم كما في الصورة التالية عند التشغيل.
الخوارزمية
كود الجافا
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 = 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"); } for (int i=0; i<3; i++) { for (int j=0; j<3; j++) { S = S + matrix[i][j]; } } System.out.print("The sum of all elements is: " +S+ "\n"); } }
شرح الكود
int[][] matrix = new int[3][3]; int S = 0;
- هنا قمنا بتجهيز المصفوفة
matrix
و حددنا أنها تتألف من 3 أسطر و 3 أعمدة. - و المتغير
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++) { for (int j=0; j<3; j++) { S = S + matrix[i][j]; } }
- هنا قمنا بإنشاء الحلقتين
i
وj
للوصول إلى جميع قيم عناصر المصفوفة. - كل عنصر يتم الوصول إليه, ستضاف قيمته على قيمة المتغير
S
. - إذاً عند توقف الحلقتين
i
وj
سيكون المتغيرS
يحتوي على ناتج جميع قيم عناصر المصفوفة.
System.out.print("The sum of all elements is: " +S+ "\n");
- هنا قمنا بعرض قيمة المتغير
S
كناتج جمع جميع قيم العناصر الموجودة في المصفوفة.