OCaml (option informatique) · Chapitre 4 · Exercice de TD
PGCD impératif
Programmation impérative : références et boucles · niveau 2
Énoncé
Écrire pgcd avec une boucle while, et donner son variant.
Corrigé
let pgcd a b =
let x = ref a and y = ref b in
while !y <> 0 do
let r = !x mod !y in
x := !y;
y := r
done;
!x
Variant : !y. Il reste positif tant que la condition !y <> 0 (avec !y initialement ) tient, et il décroît strictement car le nouveau !y vaut !x mod !y . La boucle se termine donc.
Exercices semblables
- Fibonacci itératif corrigé
- Compter les diviseurs corrigé
- Suite de Syracuse corrigé
- Racine carrée entière corrigé
- Test de primalité corrigé