Java >> Tutoriel Java >  >> Java

Programme Java pour accepter une matrice d'ordre M*N et échanger les diagonales

Dans ce tutoriel, nous allons apprendre à accepter une matrice d'ordre M*N et à échanger les diagonales. Mais avant d'aller plus loin, si vous n'êtes pas familier avec les concepts du tableau, alors consultez l'article Tableaux en Java.

Saisie : Saisissez les éléments de la matrice :

1 2 3

6 5 4

7 8 9

Sortie :

3 2 1

4 5 6

9 8 7

Programme 1 :Intervertir les diagonales d'une matrice

Dans ce programme, nous verrons comment accepter la matrice d'ordre M*N et échanger les diagonales avec des valeurs définies par l'utilisateur.

Algorithme

  1. Commencer
  2. Déclarez des variables pour la taille de la matrice.
  3. Demander à l'utilisateur d'initialiser les lignes et les colonnes de la matrice
  4. Vérifiez si le nombre de lignes et de colonnes est égal ou non.
  5. Si égal, demander à l'utilisateur d'initialiser la matrice.
  6. Imprimez la matrice d'origine.
  7. Échangez les éléments diagonaux.
  8. Imprimer la matrice échangée.
  9. Si les lignes et les colonnes ne sont pas égales, imprimez le même message.
  10. Arrêter

Vous trouverez ci-dessous le code correspondant.

//Java Program to interchange the diagonals*/
import java.util.Scanner; 

public class Main 
{ 
    public static void main(String[] args) 
    { 
        // declare variables 
        int m, n, temp; 
  
        // To take input from the user
        Scanner sc = new Scanner(System.in); 
        System.out.println("Enter number of rows "); 
  
        // Initialize the number of rows 
        m = sc.nextInt(); 
  
        System.out.println("Enter number of columns "); 
  
        // Initialize the number of columns 
        n = sc.nextInt(); 
  
        // declare a mxn order array 
        int a[][] = new int[m][n]; 
  
        // Interchange the diagonals only when it is a square matrix
        if (m == n) 
        { 
            System.out.println("Enter all the values of matrix "); 
  
            // Initialize the matrix elements
            for (int i = 0; i < m; i++) 
            { 
                for (int j = 0; j < n; j++) 
                { 
                    a[i][j] = sc.nextInt(); 
                } 
            } 
  
            System.out.println("Original Matrix:"); 
  
            // print the original matrix 
            for (int i = 0; i < m; i++) { 
                for (int j = 0; j < n; j++) { 
                    System.out.print(a[i][j] + " "); 
                } 
                System.out.println(""); 
            } 
  
            // Interchange the diagonals by swapping 
            for (int j = 0; j < m; j++) 
            { 
                temp = a[j][j]; 
                a[j][j] = a[j][n - 1 - j]; 
                a[j][n - 1 - j] = temp; 
            } 
            System.out.println("After interchanging diagonals of matrix "); 
  
            // print interchanged matrix 
            for (int i = 0; i < m; i++) { 
                for (int j = 0; j < n; j++) { 
                    System.out.print(a[i][j] + " "); 
                } 
                System.out.println(""); 
            } 
        }       
        else 
        { 
            System.out.println("Rows not equal to columns"); 
        } 
    } 
}


Entrez le nombre de lignes 3
Entrez le nombre de colonnes 3
Entrez toutes les valeurs de la matrice 1 2 3 4 5 6 7 8 9
Matrice originale :
1 2 3
4 5 6
7 8 9
Après avoir interverti les diagonales de la matrice
3 2 1
4 5 6
9 8 7

Programme 2 :Intervertir les diagonales d'une matrice

Dans ce programme, nous verrons comment accepter la matrice d'ordre M*N et échanger les diagonales avec des valeurs prédéfinies.

Algorithme

  1. Commencer
  2. Déclarez et initialisez la taille de la matrice.
  3. Vérifiez si le nombre de lignes et de colonnes est égal ou non.
  4. Si égal, alors initialiser les éléments de la matrice.
  5. Imprimez la matrice d'origine.
  6. Appeler une méthode pour échanger les diagonales.
  7. Échangez les éléments diagonaux.
  8. Imprimer la matrice échangée.
  9. Si les lignes et les colonnes ne sont pas égales, imprimez le même message.
  10. Arrêter

Vous trouverez ci-dessous le code correspondant.

//Java Program to interchange the diagonals*/
import java.util.*; 

public class Main 
{ 
    //Method to interchange the diagonals
    static void interchangeDiagonals(int arr[][])
    {
        int temp=0;   
        int m=arr.length;     //Variable to store the number of rows
        int n=arr[0].length;  //Variable to store the number of columns
         System.out.println("Original Matrix:"); 
  
            // print the original matrix 
            for (int i = 0; i < m; i++) 
            { 
                for (int j = 0; j < n; j++) 
                { 
                    System.out.print(arr[i][j] + " "); 
                } 
                System.out.println(""); 
            } 
  
            // Interchange the diagonals by swapping 
            for (int j = 0; j <m; j++) 
            { 
                temp = arr[j][j]; 
                arr[j][j] = arr[j][n - 1 - j]; 
                arr[j][n - 1 - j] = temp; 
            } 
            System.out.println("After interchanging diagonals of matrix "); 
  
            // print interchanged matrix 
            for (int i = 0; i < m; i++) { 
                for (int j = 0; j < n; j++) { 
                    System.out.print(arr[i][j] + " "); 
                } 
                System.out.println(""); 
            }    
    }
    public static void main(String[] args) 
    { 
        // declare variables 
        int rows=3, columns=3; 
        // Interchange the diagonals only when it is a square matrix
        if (rows == columns) 
        { 
           int arr[][]  = { { 2, 9, 8 }, { 7, 6, 4 }, { 3, 9, 2 } };   //Matrix Declaration
           interchangeDiagonals(arr);
        }
        else 
        { 
            System.out.println("Rows not equal to columns"); 
        } 
    } 
}


Matrice d'origine :
2 9 8
7 6 4
3 9 2
Après avoir interverti les diagonales de la matrice
8 9 2
7 6 4
2 9 3


Balise Java