اذهب إلى المحتوى
  • 0

مصفوفة ثناءية البعد

Hoida Ahamed

السؤال

Recommended Posts

  • 0

لجمع عناصر كل صف لوحده و كل عمود لوحده نستخدم حلقتين متداخلتين حيث في جمع الصف نجعل الحلقة الخارجية للصفوف و الحلقة الداخلية للأعمدة. أما في جمع عناصر العمود نجعل الحلقة الخارجية للأعمدة و الداخلية للصفوف أي العكس و هذا مثال تطبيقي على الأمر:

public class Main
{
  public static void main(String[] args) {
    int rows, cols, sumRow, sumCol;

    int a[][] = {     
      {1, 2, 3},  
      {4, 5, 6},  
      {7, 8, 9}  
    };

    rows = a.length;  
    cols = a[0].length;

    //Calculates sum of each row of given matrix  
    for(int i = 0; i < rows; i++){  
      sumRow = 0;  
      for(int j = 0; j < cols; j++){  
        sumRow += a[i][j];  
      }  
      System.out.println("Sum of " + (i+1) +" row: " + sumRow);  
    }

    //Calculates sum of each column of given matrix  
    for(int i = 0; i < cols; i++){  
      sumCol = 0;  
      for(int j = 0; j < rows; j++){  
        sumCol += a[j][i];  
      }  
      System.out.println("Sum of " + (i+1) +" column: " + sumCol);  
    }
    
  }
}

سيكون الخرج للمثال اعلاه كالتالي:

Sum of 1 row: 6
Sum of 2 row: 15
Sum of 3 row: 24
Sum of 1 column: 12
Sum of 2 column: 15
Sum of 3 column: 18

أما لإنشاء مصفوفة و ملئها بمدخلات المستخدم نحتاج إلى إستخدام الحزمة Scanner كما هو موضح في المثال:

import java.util.Scanner;

public class Main
{
  public static void main(String args[]){

    System.out.print("Enter 2D array size : ");
    Scanner sc=new Scanner(System.in);
    int rows=sc.nextInt(); // قراءة عدد الصفوف
    int columns=sc.nextInt(); // قراءة عدد الأعمدة

    System.out.println("Enter array elements : ");    

    int twoD[][]=new int[rows][columns]; // إنشاء المصفوفة بالحجم الذي أدخله المستخدم

	// ملء المصفوفة بالعناصر
    for(int i=0; i<rows;i++)
    {            
      for(int j=0; j<columns;j++)
      {
        twoD[i][j]=sc.nextInt(); // قراءة العدد و تخزينه في مكانه
      }
    }
    
    // طباعة العناصر التي أدخلها المستخدم
    System.out.print("\nData you entered : \n");
    for(int []x:twoD){
      for(int y:x){
        System.out.print(y+"        ");
      }
      System.out.println();
    }

  }   
}

ستكون نتيجة تنفيذ البرنامج أعلاه كالتالي:

Enter 2D array size : 3
3
Enter array elements : 
1
2
3
4
5
6
7
8
9

Data you entered : 
1        2        3        
4        5        6        
7        8        9  

بإمكانك دمج المثالين مع بعض للحصول على برنامج واحد كما تريد 

يُمكنك الإطلاع على مفهوم المصفوفات ثنائية البعد بشكل موسع من خلال المقال: المصفوفات ثنائية البعد (Two-dimensional Arrays) في جافا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...