Adloun

Renverser en place

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

Énoncé

Écrire renverse t qui inverse t sur place (sans créer de nouveau tableau).

Corrigé

let renverse t =
  let n = Array.length t in
  for i = 0 to n / 2 - 1 do
    let tmp = t.(i) in
    t.(i) <- t.(n - 1 - i);
    t.(n - 1 - i) <- tmp
  done

On échange la case i avec sa symétrique n-1-i, pour i allant jusqu'au milieu (n / 2 - 1) : au-delà, on déferait les échanges. La variable tmp retient une valeur le temps de l'échange. La fonction renvoie () : elle agit par effet de bord.

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.