Adloun

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

Le cours du chapitre · Tous les exercices du chapitre