programmation Java (école d'ingénieur) · Chapitre 5 · Application directe du cours
Transposée et matrice symétrique
Tableaux · niveau 2
Énoncé
- Écrire
static int[][] transposee(int[][] m)qui retourne la transposée de la matricem( lignes et colonnes) : la matrice à lignes et colonnes telle que . - Écrire
static boolean estSymetrique(int[][] m). Pourquoi suffit-il de parcourir les cases au-dessus de la diagonale ?
Corrigé
static int[][] transposee(int[][] m) {
int[][] t = new int[m[0].length][m.length]; // p lignes, n colonnes
for (int i = 0; i < m.length; i++)
for (int j = 0; j < m[0].length; j++)
t[j][i] = m[i][j];
return t;
}
static boolean estSymetrique(int[][] m) {
if (m.length != m[0].length) return false; // une matrice symétrique est carrée
for (int i = 0; i < m.length; i++)
for (int j = i + 1; j < m.length; j++)
if (m[i][j] != m[j][i]) return false;
return true;
}
La transposée de {{1, 2, 3}, {4, 5, 6}} est [[1, 4], [2, 5], [3, 6]]. Pour la symétrie, la condition est la même pour le couple et pour le couple , et elle est toujours vraie sur la diagonale () : il suffit donc de tester les cases , soit comparaisons au lieu de . {{1, 7}, {7, 2}} est symétrique ; la matrice ne l'est pas.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.