Home
        Mode d`emploi Emacs, complément Environnement, suite
         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
 
 
    
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