Home
TP1 - LSV - ENS Cachan
Contents
1. 1 Ecrivez le type lexem des l x mes ce sont les l ments de la liste repr sentant l expression 2 a De quelle structure de donn es avons nous besoin pour calculer de telles expressions b Impl mentez cette structure de donn es de fa on polymorphe c Ecrivez la fonction parse polonaise de type lexem list int qui calcule le r sultat d Ecrivez la fonction de lexing i e calcul de la liste de lex mes partir d une cha ne de caract res de type string lexem list e Ecrivez une calculette en ligne de commande en notation polonaise invers e Pour mercredi prochain lt 12H Envoyez moi vos solutions aux exercices 2 3 et 4 par mail Un fichier par exercice de la forme prenom nom_TPi_numExo ml ou un fichier pour tous les exercices de la forme prenom nom_TP1 ml Vos fichiers doivent compiler sans erreur tre correctement et suffisamment comment s et contenir des tests qui affichent les r sultats l ex cution Lucca Hirschi lucca hirschi ens lyon fr 3
2. Programmation 1 ENS Cachan Feuille de TP Ps 1 18 septembre 2014 On commence avec les outils de base que certains connaissent sans doute L objectif est d arriver mettre en place un environnement de travail pour commencer programmer dans de bonnes conditions On s amusera ensuite avec OCaml Pour ceux qui n ont jamais programm en Ocaml voici quelques r f rences un tutoriel et un r sum de la syntaxe On pourra regarder a ensemble si vous avez du mal avec les exercices 1 Shell Unix La plupart des programmes dont nous aurons besoin n ont pas d interface graphique nous utilise rons donc le shell Unix qui nous servira d interface avec la machine Commandes importantes Ouvrez un terminal et entrez ces commandes lien ou lien en fran ais vers une liste de commandes et leur description 1 pwd 5 mkdir TP_Prog 9 cp fichier fichier2 2 1s 6 cd TP_Prog 10 rm hello ml 3 cd pwd 7 touch fichire ls 4 cd 8 mv fichierr fichier Vous apprendrez utiliser le Shell sur le tas mais sachez que Bash le shell que nous utilisons est un vrai petit langage de programmation langage de script Les ressources ne manquent pas sur internet quelques liens description en profondeur en les commandes et la programmation fr Si vous voulez apprendre utiliser ces commandes ou tout autre programme vous pouvez acc der son mode d emploi en entrant man cmd pour le programme
3. cmd Signaux Vous pouvez arr ter mettre en pause ou reprendre des programmes que vous avez lanc s depuis le shell avec les raccouris respectifs C c C z fg job o job est le num ro attribu au programme mise en pause 2 Emacs Si vous maitrisez un diteur de texte puissant et adapt la programmation coloration syntaxique indentation du code recherche remplacement etc vous pouvez passer cette section Sinon je vous propose d apprendre utiliser Emacs On lance emacs comme ceci emacs hello ml amp On acc de aux fonctionnalit s habituelles via des raccourcis C pour contr le C x CF pour ouvrir un fichier existant ou C x C c pour quitter Emacs nouveau selection a la souris pour copier clic du mi C x C s pour sauver le fichier courant lieu pour coller ou au clavier Cx C b pour changer de buffer fichier ou C h t pour lancer le tutoriel d Emacs vert Vous pouvez garder ce cheatsheet sous la main pour m moriser les raccourcis Consultez la page des tuteurs pour plus de d tails sur Emacs Lucca Hirschi lucca hirschi ens lyon fr 1 Programmation 1 ENS Cachan Feuille de TP 3 Au travail Maintenant que l on sait naviguer dans le syst me et diter des fichiers on va pouvoir programmer On va commencer par quelques rappels d OCaml et sa compilation Exercice 1 Compilation 1 Pour vous montrer comment compiler un fichier source OCaml
4. crivez simplement un Hello World dans le fichier hello ml 1 2 V rifiez que vous tes dans le dossier du fichier et entrez dans le shell la commande ocamlopt o hello out hello ml V rifiez que le fichier hello out a bien t cr c est l ex cutable g n r par la compilation de hello ml 3 Lancez cette ex cutable hello out C est de cette fa on que l on ex cutera nos programmes On commence par cr er un fichier source crit dans un langage compr hensible pour l homme comme hello ml On compile ce fichier autrement dit on traduit ce programme dans un langage compr hensible pour la machine essayez de lire hello out en faisant cat hello out Puis on lance le programme Si vous voulez tester des fonctions rapidement vous pouvez toujours utiliser l interpr teur Ocaml entrez ledit ocaml Exercice 2 Remise en forme 1 Ecrivez un programme qui calcule puis affiche le 25 me terme de la s rie de Hofstadter Conway et testez a 1 a 2 1 a n a a n 1 a n a n 1 pour n gt 2 2 Le m me code permet il de calculer le 1489 me terme Modifiez si besoin le programme que vous avez crit afin qu il puisse calculer ce terme 3 Si vous avez utilis let rec r crivez le programme sans Si vous avez utilis while ou for r crivez le programme sans Testez e Un bonne pratique que vous devez adopter d s maintenant consiste s parer le code qui r po
5. e avec un parcours en largeur d M me chose sans utiliser de modules de la librairie standard except Printf Exercice 4 Amusons nous avec Pascal D apr s un exo de David Baelde 1 crire une fonction next int list gt int list qui une ligne du triangle de pascal associe la suivante a l aide de la fonction pr c demment d finie affichez le triangle de Pascal repr sentant les valeurs paires par un et les impaires par un Vous utiliserez les fonctions suivantes mod int gt int gt int print_char char gt unit print_newline unit gt unit b Affichez ainsi les 31 premi res lignes du triangle Si vous ne reconnaissez pas la figure obtenue essayez de diminuer la police plisser les yeux ou afficher plus de lignes 2 Si ce n est pas d j fait crivez ces m mes fonctions en utilisant des listes mais aucune r f rence boucle for ou while 3 Quel type utiliseriez vous pour r crire la fonction next sp cialis e pour le calcul des parit s Exercice 5 Encore plus rigolo une calculette l ancienne L objectif de cet exercice est de r aliser un parseur d expressions math matiques crites en notation polonaise invers e Vous devez prendre en compte les op rations x 1 i e oppos sur les entiers A partir d une expression math matique donn e sous la forme d une liste d entiers et d op rateurs vous devez calculer le r sultat de l expression
6. nd au probl me du code qui permet de tester ce que vous avez crit Il faut galement penser commenter son code pour soi et pour les autres Par exemple pour les questions pr c dentes j attend au moins les fonctions suivantes conwaRec muni d un commentaire du type calcule le i me terme de la suite de Conway en style r cursif conwaylmp je vous laisse inf rer le commentaire et testConway qui teste les fonctions conway avec du printf Exercice 3 Polymorphisme 1 a Rappelez vous de la notion de curryfication et crivez une fonction d addition de type int int gt int b Ecrivez une fonction de curryfication pour les fonctions deux arguments de type fax b c a bc c Ecrivez une fonction de de curryfication pour les fonctions deux arguments de type a gt b gt c gt ax b c 1 Conseil vous pouvez trouver la documentation de la librairie standard ici et y chercher printf 2 Faites C c si vous perdez le contr le Lucca Hirschi lucca hirschi ens lyon fr 2 Programmation 1 ENS Cachan Feuille de TP 2 a Ecrivez le type d un arbre d arit non fix e dont les noeuds sont tiquet s par une valeur de type polymorphe b Ecrivez une fonction qui r alise le parcours en profondeur d un tel arbre en appliquant une fonction abstraite de type a unit o a est le type des valeurs aux noeuds pensez aller voir la doc de List c M me chos
Download Pdf Manuals
Related Search
Related Contents
Manuale MULTIFIRE e AMBRA con traduzioni.pmd LC - Peritia Univex Trail Blazer User's Manual Weider WEMC0943 User's Manual Brother PT-1010 Printer User Manual 82-12900 USER`S MANUAL Fiche SPONSORING - sport-u OPERATING INSTRUCTIONS H FRAME PRESSES Copyright © All rights reserved.
Failed to retrieve file