Home

Mode d`emploi Emacs, complément Environnement, suite

image

Contents

1. Exercice 1 Utilisez le code de la suite de Fibonacci du TP1 pour obtenir un fichier ex cu table qui lit un entier et renvoie le n i me terme de la suite de Fibonacci On utilisera la fonction int_of_string string gt int qui transforme une cha ne de caract re contenant un entier en l entier lui m me par exemple int_of_string 34 renvoie int 34 On peut decliner cette formule volont float_of_int string_of_int 1 Construction de types Un nouveau type peut tre d fini l aide de la commande suivante type couleur Rouge Jaune Vert Bleu Rouge les constructeurs doivent commencer par une majuscule let est_couleur_primaire function Vert gt false _ gt true Les constructeurs peuvent tre accompagn s d arguments ou tre r cursifs type nombre Int of int Real of float Int 3 Real 5 type liste IListe_vide Cons of int liste Exercice 2 Pattern matching sur types construits En r utilisant les types d finis ci dessus crivez une fonction somme nombre gt nombre gt nombre Ecrivez galement une Jonction longueur liste gt int 2 Retour sur les listes 2 1 Amusettes Revenons aux listes traditionnelles Lorsque deux cas du filtrage aussi appel pattern maching doivent renvoyer la m me r ponse on peut les accoler sur la m me ligne comme en t moigne l exemple suivant let au_moins_ deux function O _ gt false
2. _min 1 renvoie le couple a reste o a est l l ment minimum de 1 et reste est une liste contenant tous les l ments de 1 sauf a Elle devra fonctionner en un seul parcours de la liste En d duire une fonction r cursive tri_selection a list gt a list qui trie une liste en s lectionnant le minimum de la liste en le pla ant au d but puis en recommen ant avec le reste Exercice 7 Tri rapide crivez une fonction coupe_pivot a gt a list gt a list a list telle que coupe_pivot a 1 renvoie le couple 11 12 o 11 contient tous les l ments de 1 qui sont plus petits que a et 12 contient tous les l ments de 1 qui sont plus grands que a Elle devra fonctionner en un seul parcours de la liste En d duire une fonction r cursive tri_rapide a list gt a list qui trie une liste en choisissant le premier l ment comme pivot qui divise la liste en deux morceaux les plus petits que a et les plus grands que a qui place a au milieu et qui recommence r cursivement Exercice 8 Tri bulle crivez une fonction remonte_max a list gt a list qui fait remonter le maximum de la liste la fin de celle ci en n changeant que des l ments successifs On remarquer que sur une liste tri r cette fonction fait remonter le premier l ment de la liste sa bonne place dans la liste En d duire une fonction r cursive tri_bulle a list gt a list qui trie une liste en faisant remonte
3. t1 t2 q gt trie Remarquez en revanche que l exemple suivant renvoie une erreur Comprenez vous pourquoi let au_moins_deux function O a gt false t1 t2 q gt true Exercice 3 1 Ecrivez une fonction extremum a list gt a a qui renvoie le couple min max des lements de la liste 2 Ecrivez une fonction deuxieme a list gt a qui renvoie le deuxi me plus grand l ment de la liste On pourra s aider d une fonction auxiliaire qui renvoie une information plus forte Exercice 4 1 crivez une fonction map a gt b gt a list gt b list telle que map f ai an renvoie f ai f an 2 Texte trous Map Sierre 4 7 5 2 Ol int list 6 9 3 4 2 map fun n gt fibo n Se SA nes de int list 1 2 3 5 8 2 2 Tris Exercice 5 Tri par insertion crivez une fonction insere a gt a list gt a list telle que insere a liste_triee ins re l l ment a au bon endroit dans la liste liste_triee que l on suppose d j tri e En d duire une fonction r cursive tri_insertion a list gt a list qui trie une liste en ins rant les l ments les uns apr s les autres dans la partie d j tri e de la liste la r cursivit nous permettra d avoir seulement le premier l ment ins rer Exercice 6 Tri par s lection crivez une fonction select_min a list gt a a list telle que select
4. ENS LYonN L3 INFO PROJI1 2014 2015 TP2 Caml PRISE EN PIED Sujet finir pour le dimanche 28 09 2014 rendre par mail aurelie lagoutte ens lyon fr Mode d emploi Emacs compl ment Il est important de bien indenter son code c est dire laisser des espaces en d but de ligne de fa on aligner intelligemment certaines lignes de code par exemple pour le filtrage pour le d but et la fin d une boucle etc Ceci est vrai dans tous les langages Pour vous aider faire cela correctement en Caml Emacs propose de le faire automatiquement pour la ligne en cours lorsque vous tapez sur TAB Pensez y c est pratique Cela permet parfois de d tecter des erreurs avant m me la compilation si l indentation automatique ne correspond pas ce que vous esp riez oubli d un point virgule ou d une parenth se etc Environnement suite Il est possible d utiliser oCaml en mode compil ditez un fichier hello ml contenant la commande print_string Hello World print_newline Dans le terminal compilez puis lancez le programme ocamlc o hello hello ml hello Le programme oCaml compil ex cute toutes les commandes du code source Testez le code source suivant print _string What is your name let s read_line print_string Hello world n print _string Welcome to s print_newline 5 12 print_newline let x 5 12 print_int x print_newline
5. r chaque l ment dans sa bulle 3 Fonctions sur les entiers Exercice 9 crivez une fonction pgcd int gt int gt int qui renvoie le pgcd de deux en tiers Pour r duire le nombre de cas dans le filtrage on pourra filtrer sur min a b max a b Exercice 10 crivez une fonction composition_repetee a gt a gt int gt a gt a telle que composition f n a renvoie f f f a o f est appliqu e n fois Que renvoie l instruction map fun n gt composition_repetee fun x gt 2 x n 1 1 2 3 4 5 et pourquoi

Download Pdf Manuals

image

Related Search

Related Contents

スハッ トファン "  取扱説明書 NA-S81  BPA-4060 BPA-8060 Manual de instrucciones  Foundations  Publiaire 48 - Malaucène.fr    音楽リモコンカタログ(温水シリーズ)(PDF 2P 3.5MB)  Macformat Lion - Learning on the Loop  Global Direct 21925 Installation Guide  WEG - Interempresas  

Copyright © All rights reserved.
Failed to retrieve file