TP CAML
Astuces pour les TP Caml
- changez la taille de la console (ou terminal, ou boite noire ^^) en cliquant sur le bord de la fenêtre, pour qu'elle
occupe la moitié de l'écran
- placez-vous dans un répertoire caml
- lancez un éditeur de texte, par exemple en tapant nedit & et changer sa taille pour qu'il occupe l'autre
moitié de l'écran
- faites une première sauvegarde du fichier en appuyant sur les touches ctrl et s (donnez un nom puis
validez)
- dans la console, tapez ocaml pour lancer l'interpréteur caml (comme l'indique le # en début de ligne)
- maintenant vous pouvez taper vos instructions caml dans l'éditeur de texte (sans oublier les ;;), puis selectionner
une instruction à la souris et la copier dans l'interpréteur en cliquant sur le bouton du milieu
- vous pouvez aussi importer l'ensemble du fichier où se trouvent vos instructions en tapant dans
l'interpréteur caml l'instruction suivante : #use "mon_fichier";; (attention, le # se rajoute en plus de celui du
début de ligne, et il ne faut pas oublier de mettre les guillements)
Exo de TP sur la récursivité
Le système binaire est un système de numérotation
en base 2. On nomme bit les chiffres de cette
numérotation, chaque bit prend une valeur 0 ou 1.
La représentation d'un nombre quelconque en nombre binaire suit
les mêmes règles qu'en base 10 :
ex : l'entier 502 représenté en base 10
= 5 * 100 + 0 * 10 + 2 * 1
= 5 * 10e2 + 0 * 10e1 + 2 * 10e0
= "5 0 2"
Il s'agit toujours d'une somme de facteurs entre des chiffres {0,1,2,3,4,5,6,7,8,9}
et des puissances de 10.
De même en binaire :
ex : l'entier 22 en base 2
= 1 * 16 + 0 * 8 + 1 * 4 + 1 * 2 + 0 * 1
= 1 * 2e4 + 0 * 2e3 + 1 * 2e2 + 1 * 2e1 + 0 * 2e0
= "1 0 1 1 0"
Il s'agit toujours d'une somme de facteurs entre des chiffres {0,1} et des puissances de
2.
- Ecrire les entiers de 0 à 7 sous forme binaire.
- Ecrire une fonction (récursive :)) Caml qui convertit un entier rentré en paramètre en
son écriture sous forme binaire (par une chaine de caraères composée de "0" et de "1").
On rappelle que l'opérateur de concaténation entre des chaines de caractères est l'accent
circonflèxe ^ .
Exo sur le tri des listes
Voir ce fichier pour avoir les énoncés des différents
algorithmes de tri et la liste des différentes fonctions intermédiaires à
coder. Une fois ces fonctions de tri codées en CAML, on pourra comparer leur
vitesse pour trier des listes de grande taille (~10000) construites par les fonctions
de génération automatique vues en TD.
Exo de TP sur la récursivité en mode graphique
Après avoir récupérer le fichier carre.ml,
essayez de comprendre les fonctions implantées et les tester pour s'assurer qu'elles
marchent correctement. Ensuite proposez deux algorithmes pour obtenir des figures semblables
à celles ci-dessous. Essayez de coder en CAML ces deux algorithmes par deux
fonctions récursives.