– les éléments définis dans le module sont alors utilisables
– soit en utilisant leur nom préfixé par le nom du module suivi d’un point par exemple
Outil_tp.image_ligne
– soit en ouvrant le module. Cela permet de rendre directement disponible les éléments définis
dans le module sans avoir à préciser le nom du module.
Question 6 testez les deux méthodes.
2 la fonction cmp
Question 7 Réaliser une fonction cmp dont la spécification est la suivante :
–cmp a b vaut 1 si et seulement si a > b
–cmp a b vaut 0 si et seulement si a=b
–cmp a b vaut -1 si et seulement si a < b
Question 8 Quel est le type de cette fonction ?
En OCaml cette fonction est déjà prédéfinie et se nomme compare
Question 9 Évaluer les expressions suivantes :
compare ’a’ ’b’;;
compare "Zoe" "arthur";;
compare infinity 5.0;;
compare 5 -1
compare (2,3) (2,4);;
compare false true;;
3 l’ordre lexicographique
L’ordre lexicographique est l’ordre généralement utilisé par les dictionnaires. Plus formellement,
si adésigne un tableau de taille met bun tableau de taille n, on dit que a≤bdans l’ordre
lexicographique si et seulement si
– appelons i0le plus grand indice, tel que pour tout 0≤i<i0on ait : a.(i) = b.(i)
– on a i0>=mou bien (i0< n et a.(i0)≤b.(i0))
Question 10 En utilisant l’opérateur ( <= ) sur les éléments des tableaux, réaliser une fonction nommée
cmptab qui permet de comparer deux tableaux en utilisant l’ordre lexicographique
Question 11 Évaluer les expressions suivantes :
cmptab [| 1 ; 2 ; 3 |] [| 1; 2 ; 2 |];;
cmptab [| 1 ; 2 ; 3 |] [| 1; 2 ; 3 |];;
cmptab [| 1 ; 2 ; 3 |] [| 1; 2 |];;
cmptab [| 1; 2 ; 2 |] [| 1 ; 2 ; 3 |];;
cmptab [| 1; 2 ; 3 |] [| 1 ; 2 ; 3 |];;
cmptab [| 1; 2 |] [| 1 ; 2 ; 3 |];;
cmptab [||] [||] ;;
2