Adloun

OCaml (option informatique) · Chapitre 5 · Exercice de TD

Transposée d'une matrice

Les tableaux · niveau 3 (difficile)

Énoncé

Écrire transpose m qui renvoie la transposée d'une matrice d'entiers lignescolonnes (rectangulaire, non vide).

Corrigé

let transpose m =
  let lignes = Array.length m in
  let colonnes = Array.length m.(0) in
  let t = Array.make_matrix colonnes lignes 0 in
  for i = 0 to lignes - 1 do
    for j = 0 to colonnes - 1 do
      t.(j).(i) <- m.(i).(j)
    done
  done;
  t

La transposée a colonnes lignes et lignes colonnes : on crée t de la bonne forme, puis on recopie m.(i).(j) dans t.(j).(i). Le nombre de colonnes se lit sur la première ligne m.(0) (d'où l'hypothèse « rectangulaire non vide »).

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre