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

โปรแกรม Java สลับเส้นทแยงมุมของเมทริกซ์


ในบทความนี้ เราจะเรียนรู้วิธีการสลับเส้นทแยงมุม (Interchange Diagonals) ของเมทริกซ์ เมทริกซ์มีการจัดเรียงองค์ประกอบเป็นแถวและคอลัมน์ เมทริกซ์ที่มี m แถวและ n คอลัมน์ เรียกว่าเมทริกซ์ m × n องค์ประกอบแต่ละตัวในเมทริกซ์เรียกว่า element และแทนด้วย a[i][j] ซึ่งหมายถึงองค์ประกอบ a อยู่ที่แถวที่ i และคอลัมน์ที่ j

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

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

The matrix is defined as: 4 5 6 1 2 3 7 8 9

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

The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7

อัลกอริทึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศเมทริกซ์จำนวนเต็ม input_matrix และตัวแปรจำนวนเต็ม matrix_size และ temp
ขั้นตอนที่ 3 - กำหนดค่าให้กับเมทริกซ์
ขั้นตอนที่ 4 - วนลูปผ่านแต่ละองค์ประกอบด้วย for-loop หลายชั้น สลับองค์ประกอบที่จำเป็นของเมทริกซ์โดยใช้ตัวแปรชั่วคราว (temp)
ขั้นตอนที่ 5 - แสดงผลลัพธ์
ขั้นตอนที่ 6 - จบการทำงาน

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

public class InterchangeDiagonals { 
    public static int matrix_size = 3; 
    public static void main (String[] args) { 
        int input_matrix[][] = { 
            {4, 5, 6}, 
            {1, 2, 3}, 
            {7, 8, 9} 
        }; 
        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.println(); 
        } 
        for (int i = 0; i < matrix_size; ++i) 
            if (i != matrix_size / 2) { 
                int temp = input_matrix[i][i]; 
                input_matrix[i][i] = input_matrix[i][matrix_size - i - 1]; 
                input_matrix[i][matrix_size - i - 1] = temp; 
            } 
        System.out.println("\nThe matrix after interchanging the elements: "); 
        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.println(); 
        } 
    } 
}

ผลลัพธ์

The matrix is defined as: 4 5 6 1 2 3 7 8 9
The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7

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

public class InterchangeDiagonals { 
    public static int matrix_size = 3; 
    static void interchange_diagonals(int input_matrix[][]) { 
        for (int i = 0; i < matrix_size; ++i) 
            if (i != matrix_size / 2) { 
                int temp = input_matrix[i][i]; 
                input_matrix[i][i] = input_matrix[i][matrix_size - i - 1]; 
                input_matrix[i][matrix_size - i - 1] = temp; 
            } 
        System.out.println("\nThe matrix after interchanging the elements: "); 
        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.println(); 
        } 
    } 
    public static void main (String[] args) { 
        int input_matrix[][] = { 
            {4, 5, 6}, 
            {1, 2, 3}, 
            {7, 8, 9} 
        }; 
        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.println(); 
        } 
        interchange_diagonals(input_matrix); 
    } 
}

ผลลัพธ์

The matrix is defined as: 4 5 6 1 2 3 7 8 9
The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7