Adloun

Transposée d'une matrice

Exercice · OCaml (option informatique), chapitre 5 — Les tableaux

É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 »).

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.