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();
}
}
}