Menu1 Menu2 Menu3 Menu4 Menu5 Menu6

Nous allons représenter les rationnels sous la forme d'un couple d'entiers : le numérateur et le dénominateur (non nul). Par exemple, 8/9 sera noté 8,9. Le but de l'exercice est définir les opérations sur les rationnels : addition, soustraction, multiplication, division.

1) Mais il faut d'abord définir la simplification d'une fraction : 16/12 doit être noté 4,3. Pour cela, commencez par écrire une fonction pgcd qui donne le PGCD de deux entiers strictement positifs. Je rappelle l'algorithme d'Euclide :
   on suppose a <= b
       si a divise b alors PGCD (a,b) = a
       sinon, PGCD (a,b) = PGCD (a,q) où q est le reste de la division euclidienne de b par a.
La fonction pgcd est récursive, par définition de l'algorithme d'Euclide (vous êtes libre d'en utiliser un autre, mais celui-là me semble quand même plus simple !). Si a > b, on rappelle pgcd en échangeant a et b. Sinon, si a divise b, on rend a. Sinon, on rappelle pgcd en remplaçant b par le reste de b/a :
let rec pgcd a b =
   if a > b then pgcd b a
   else if b mod a = 0 then a
   else pgcd a (b mod a);;

2) Maintenant, vous allez pouvoir écrire la fonction reduit qui prend en argument un rationnel (donc un couple d'entiers) et qui rend sa forme réduite. Par convention, le dénominateur devra toujours être positif. On pourra commencer par écrire une fonction donnant la forme réduite d'un rationnel dont le numérateur et le dénominateur sont positifs.
Solution

> Haut de la page