Matrices

Transposée d’une matrice

Énoncé

Saisir L et C avec 1 ≤ L ≤ 20 et 1 ≤ C ≤ 20, puis remplir une matrice M de L lignes et C colonnes d’entiers. Écrire une procédure Transposer qui construit une matrice T de C lignes et L colonnes, puis afficher T.

Exemples et cas limites

Saisissez ces valeurs dans la console pour vérifier votre résultat :

Saisir L puis C, puis les entiers ligne par ligne : m[0,0], m[0,1], … jusqu’à la dernière case. Vous pouvez choisir d’autres dimensions et valeurs.

Entrée
L = 2
C = 3
m[0,0] = 1
m[0,1] = 2
m[0,2] = 3
m[1,0] = 4
m[1,1] = 5
m[1,2] = 6
Sortie attendue
1 4 
2 5 
3 6 
Entrée
L = 3
C = 1
m[0,0] = 2
m[1,0] = 4
m[2,0] = 6
Sortie attendue
2 4 6 

Complétez les modules marqués par un commentaire dans le code de départ. Les modules déjà écrits permettent de saisir vos données. Exécutez les cas de test et comparez la sortie attendue, ou ouvrez directement l’onglet Correction.

Code algorithmique

transposee_matrice.algo
1algorithme transposee_matrice
2debut
3 saisir(l, c)
4 remplir(m, l, c)
5 transposer(m, l, c, t)
6 afficher(t, c, l)
7fin
8
9procedure saisir(@l : entier, @c : entier)
10debut
11 repeter
12 ecrire("L = ")
13 lire(l)
14 jusqua 1 ≤ l ≤ 20
15 repeter
16 ecrire("C = ")
17 lire(c)
18 jusqua 1 ≤ c ≤ 20
19fin
20
21procedure remplir(@m : mat, l : entier, c : entier)
22debut
23 pour i de 0 à l - 1 faire
24 pour j de 0 à c - 1 faire
25 ecrire("m[" + convch(i) + "," + convch(j) + "] = ")
26 lire(m[i,j])
27 fin_pour
28 fin_pour
29fin
30
31procedure transposer(m : mat, l : entier, c : entier, @t : mat)
32debut
33 // compléter le traitement demandé dans l’énoncé.
34fin
35
36procedure afficher(m : mat, l : entier, c : entier)
37debut
38 pour i de 0 à l - 1 faire
39 pour j de 0 à c - 1 faire
40 ecrire(m[i,j], " ")
41 fin_pour
42 ecrire_nl("")
43 fin_pour
44fin

Méthode

  1. Lire les dimensions et les L × C entiers de M.
  2. Copier m[i,j] dans t[j,i], puis afficher T avec C lignes et L colonnes.
À retenir :

Pour une matrice non carrée, on ne peut pas simplement échanger les cases dans le même tableau.