Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java คำนวณผลรวมเส้นทแยงมุมของเมทริกซ์


ในบทความนี้ เราจะเรียนรู้วิธีการคำนวณผลรวมของเส้นทแยงมุมของเมทริกซ์ เมทริกซ์มีการจัดเรียงองค์ประกอบเป็นแถวและคอลัมน์ เส้นทแยงมุมหลัก (Principal Diagonal) คือเส้นทแยงมุมในเมทริกซ์สี่เหลี่ยมจัตุรัสที่ไปจากมุมซ้ายบนไปมุมขวาล่าง เส้นทแยงมุมรอง (Secondary Diagonal) คือเส้นทแยงมุมของเมทริกซ์สี่เหลี่ยมจัตุรัสที่ไปจากมุมซ้ายล่างไปมุมขวาบน

ตัวอย่างการทำงาน

สมมติข้อมูลนำเข้า (Input) คือ:

The input matrix: 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50

ผลลัพธ์ที่ต้องการ (Output) คือ:

Sum principal diagonal elements: 74 Sum of secondary diagonal elements: 45

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศเมทริกซ์จำนวนเต็ม input_matrix
ขั้นตอนที่ 3 - กำหนดค่าให้กับเมทริกซ์
ขั้นตอนที่ 4 - วนลูปผ่านแต่ละองค์ประกอบด้วย for-loop 2 ชั้น บวกองค์ประกอบเส้นทแยงมุม ใช้เงื่อนไข i == j สำหรับ principal diagonal และ i + j == matrix_size - 1 สำหรับ secondary diagonal
ขั้นตอนที่ 5 - แสดงผลลัพธ์
ขั้นตอนที่ 6 - จบการทำงาน

ตัวอย่างที่ 1: เขียนโค้ดทั้งหมดในฟังก์ชัน main

public class MatrixDiagonals { 
    static public void main(String[] args) { 
        int[][] input_matrix = { 
            { 4, 5, 6, 7 }, 
            { 1, 7, 3, 4 }, 
            { 11, 12, 13, 14 }, 
            { 23, 24, 25, 50 } 
        }; 
        int matrix_size = 4; 
        System.out.println("The matrix is defined as : "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) 
                System.out.print( input_matrix[i][j] + " "); 
            System.out.print("\n"); 
        } 
        int principal_diagonal = 0, secondary_diagonal = 0; 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                if (i == j) 
                    principal_diagonal += input_matrix[i][j]; 
                if ((i + j) == (matrix_size - 1)) 
                    secondary_diagonal += input_matrix[i][j]; 
            } 
        } 
        System.out.println("\n The sum of principal diagonal elements of the matrix is: " + principal_diagonal); 
        System.out.println("\n The sum of secondary diagonal elements of the matrix is: " + secondary_diagonal); 
    } 
}

ผลลัพธ์

The matrix is defined as : 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50
The sum of principal diagonal elements of the matrix is: 74
The sum of secondary diagonal elements of the matrix is: 45

ตัวอย่างที่ 2: ใช้ฟังก์ชันแยก (Object-Oriented Style)

public class MatrixDiagonals { 
    static void diagonals_sum(int[][] input_matrix, int matrix_size) { 
        int principal_diagonal = 0, secondary_diagonal = 0; 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                if (i == j) 
                    principal_diagonal += input_matrix[i][j]; 
                if ((i + j) == (matrix_size - 1)) 
                    secondary_diagonal += input_matrix[i][j]; 
            } 
        } 
        System.out.println("\n The sum of principal diagonal elements of the matrix is: " + principal_diagonal); 
        System.out.println("\n The sum of secondary diagonal elements of the matrix is: " + secondary_diagonal); 
    } 
    static public void main(String[] args) { 
        int[][] input_matrix = { 
            { 4, 5, 6, 7 }, 
            { 1, 7, 3, 4 }, 
            { 11, 12, 13, 14 }, 
            { 23, 24, 25, 50 } 
        }; 
        int matrix_size = 4; 
        System.out.println("The matrix is defined as : "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) 
                System.out.print( input_matrix[i][j] + " "); 
            System.out.print("\n"); 
        } 
        diagonals_sum(input_matrix, matrix_size); 
    } 
}

ผลลัพธ์

The matrix is defined as: 4 5 6 7 1 7 3 4 11 12 13 14 23 24 25 50
The sum of principal diagonal elements of the matrix is:74
The sum of secondary diagonal elements of the matrix is: 45