OCaml (option informatique) · Chapitre 5 · Exercice de TD
Renverser en place
Les tableaux · niveau 2
É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.
Exercices semblables
- Construire avec
Array.initcorrigé - Recherche avec
optioncorrigé - Les fonctions du module
Arraycorrigé - Le piège de la valeur partagée corrigé
- Transposée d'une matrice corrigé