Listes - GRAppA
Transcription
Listes - GRAppA
TD Techniques informatiques Feuille n°8 Listes Exercice 1 : à faire à l’écrit, puis à vérifier sur machine Déterminer le type et la valeur des expressions suivantes : 1. 2. 3. 4. 5. 6. 7. 8. [] [ ]:: [ ] [ ]::[1;2;3] [ ]::([[1]]@[[2]]) [ ]::[[3;4;5]] [ ]::([[1];[2]]@[ ]) [1;2]::[ ]::[ ] (2::(1::[ ]))@[ ] 9. 10. 11. 12. 13. 14. 15. 16. 1:: 2 :: [ ] [[1;2] ;[ ] ;[3]] [2;[3]] 1::2::3 [`a`;`b`]@[1;2] `a`::[ ]@[`b`;`c`] [`a`]::[`b`;`c`] [`a`]@[abc] Exercice 2 : à faire à l’écrit, puis à vérifier sur machine Donner la notation sans cons des expressions suivantes : x :: [ ] [ ] :: [ ] x :: [y] x :: y :: [ ] Donner la notation sans @ des expressions suivantes : [x] @ [y] [ ] @ L [x]@ L [ ] @ [ ] [x] @ [y] @ [z] Exercice 3 : à faire à l’écrit, puis à vérifier sur machine Déterminer le type et la valeur des expressions suivantes : 1. 2. 3. x::(1::[ ]) (1::2::[ ])::x::[ ] 1::x 4. 5. [x]::[[1];[2]] [1;2;x] Exercice 4 : fonctions simples Ecrire les fonctions suivantes : a. LISTE_VIDE qui renvoie true si la liste est vide et false sinon ; b. TETE qui renvoie la tête de la liste ; c. QUEUE qui renvoie la queue de la liste. Exercice 5: fonctions récursives simples Ecrire les fonctions (versions avec filtrage) : a. b. c. d. LONGUEUR, qui calcule la longueur d’une liste NIEME_ELT, qui renvoie le nième élément d’une liste APPARTIENT, qui teste si un élément appartient à une liste INCLUSE qui teste si une liste est incluse dans une autre. Utilisez la fonction trouvée au point b. pour écrire les fonctions PREMIER_ELT et DERNIER_ELT qui renvoient respectivement le premier et le dernier élément d'une liste. Bi-Deug LFTI – 2004/2005 D.Battistelli – D.Sofronie – J.Couto TD Techniques informatiques Exercice 6: fonctions récursives qui renvoient des listes Ecrire les fonctions (versions avec filtrage) : a. b. c. CONCAT, qui concatène deux listes en une seule RENVERSE, qui renverse une liste N_PREM, qui extrait les n premiers éléments d’une liste Exercice 7 : Ecrire les fonctions (versions avec filtrage) : a. b. c. SUPPRIME1, qui supprime une occurrence d’un élément x d’une liste L SUPPRIME2, qui supprime toutes les occurrences de l’élément x de la liste L MINLISTE, qui retourne le plus petit élément d’une liste Exercice 6 : Définir la fonction FUSION (version avec filtrage) qui fusionne deux listes d’entiers triées par ordre croissant en une seule liste ordonnée. Bi-Deug LFTI – 2004/2005 D.Battistelli – D.Sofronie – J.Couto