Ici le tableau est à deux dimensions. On utilise aussi des boucles for pour le parcours. Ces boucles sont imbriquées (pour chaque n° de ligne i, on doit parcourir tous les n° de colonnes j). La transposition se fait simplement en tenant compte du fait qu’un élément à la position [i][j] dans la matrice initiale se trouvera à la position [j][i] dans la transposée de cette matrice. Remarquez également que les portions de code relatives à l’affichage des deux matrices sont quasi-identiques: seul le nom de la matrice change. Nous verrons au cours prochain comment il est possible de ne coder qu’une fois dans le programme ces lignes de codes.
import java.util.Scanner; class Transposer { private static Scanner scanner = new Scanner(System.in); public static void main(String args[]) { System.out.print(" Donnez la dimension de la matrice: "); int size = scanner.nextInt(); // Déclaration-construction de la matrice à transposer int[][] mat = new int[size][size]; // Déclaration-construction de la matrice transposée (résultat) int[][] tam = new int[size][size]; // Lire les valeurs de la matrice. Chaque valeur est écrite // dans la matrice originale et à la position correspondante // dans la matrice transposée for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { System.out.print(" Entrez un nombre entier " + "pour la rangée " + row + " et la colonne " + col + " : "); mat[row][col] = scanner.nextInt(); tam [col][row] = mat [row][col]; } } // Affichage de la matrice originale System.out.println(" La matrice originale est : "); for (int row = 0; row < size; row++) { for (int col = 0; col < size; col++) { System.out.print(mat[row][col] + " "); } System.out.println(); } // Affichage de la matrice transposée System.out.println(" La matrice transposée est : "); for (int row = 0; row < size; row++) { for (int col = 0; (col < size); col++) { System.out.print(tam[row][col] + " "); } System.out.println(); } } }