Licence Sciences 2ème Année | |||
Filière -- Mathématiques, Informatique et Applications aux Sciences | 2005 - 2006 | ||
Programmation avancée | |||
1er semestre | 2005 | ||
Projet 1 -- Exploitation d'une file pour écrire un Nibbler | |||
Auteurs Chan Ung et Florent Hivert | Deadline : Lundi 17 Octobre 2005 à 19 heures | 30 Septembre 2005 et 06 Octobre 2005 | |
Exploitation d'une file pour écrire un Nibbler
Dans ce TD, on souhaite réaliser un programme de poursuite d'un ver s'allongeant
au fur et à mesure qu'il consomme des proies. Au lancement du programme un quadrillage
régulier est affiché et les proies, représentées sous forme de carrés pleins dans le damier, sont
disséminées aléatoirement dans l'espace de jeu. Le ver est
représenté par une tête (un disque noir) et une suite d'anneaux représentés par des cercles.
Au lancement du jeu, le ver est sans anneau. | |||
énoncé note correction documentation | |||
Projet 2 -- Structure de pile pour l'évaluation d'expressions en notation polonaise inversée | |||
Auteurs Chan Ung et Florent Hivert | Deadline : Lundi 24 Octobre 2005 à 19 heures | 13 Octobre 2005 | |
Structure de pile pour l'évaluation d'expressions en notation polonaise inversée
Dans ce TD, on souhaite évaluer des expressions données en notation polonaise inversée ou postfixe. Pour
réaliser cette
évaluation, on utilisera une nouvelle structure de donnée : la pile, dont nous implanterons
les fonctions de manipulation de base. Nous verrons ensuite comment utiliser cette structure de donnée
afin d'évaluer des expressions données en notation polonaise inversée ou postfixe et nous réaliserons
une calculatrice
qui prendra exemple sur la commande dc. Une fonction d'analyse syntaxique sera implantée
permettant de découper l'expression saisie par l'utilisateur et qui utilisera la fonction strtod
à la place de la fonction atof. Cette dernière ne gérant pas les erreurs.
| |||
énoncé note correction documentation | |||
Projet 3 -- Ecriture bits-à-bits | |||
Auteurs Florent Hivert et Marc Zipstein | Deadline : Jeudi 03 Novembre 2005 à 19 heures | 27 Octobre 2005 et 04 Novembre 2005 | |
Ecriture bits-à-bits
Dans les algorithmes de compressions de données, on a souvent besoin de stocker des nombres dans un fichier.
Nous allons implémenter deux méthodes pour le faire, le but étant de prendre le moins de place possible sur
le disque. La première va écrire sur un nombre variable d'octets, tandis que la seconde va écrire sur un
nombre variable de bits. Nous verrons la notion de fichier « bufferisé » que nous implanterons et utiliserons pour
l'écriture et la lecture de nos données compressées précédemment. | |||
énoncé note correction documentation | |||
Projet 4 -- Compression par déplacement en tête de liste | |||
Auteurs Florent Hivert et Marc Zipstein | Deadline : Vendredi 23 Décembre à 19 heures | 10, 24, 25 Novembre 2005 et 02 Décembre 2005 | |
Compression par déplacement en tête de liste
Nous décrivons et implantons dans ce TD une méthode de compression de données (adaptée aux textes) qui va utiliser une
liste chaînée de mots. La position d'un mot dans la liste est un entier strictement positif (la position du mot en tête
de liste est donc 1). Lors de la compression d'un texte, on va coder un mot déjà présent dans la liste par sa position courante
puis on le déplace en tête de la liste. Si le mot n'est pas présent dans la liste, on le code par l'entier 0 suivi du mot en
clair dans le fichier et on l'ajoute à la fin de la liste. Il est évident que pour l'écriture des entiers dans le fichier, on
utilisera les deux méthodes d'écriture bit à bit vues et implantées dans le TD précédent. | |||
énoncé corpus note correction documentation | |||
Projet 5 -- Arbres syntaxiques | |||
Auteurs Florent Hivert et Marc Zipstein | Deadline : Jeudi 15 Décembre 2005 à 19 heures | 08 Décembre 2005 | |
Arbres syntaxiques
Dans ce TD, on souhaite représenter les expressions arithmétiques à l'aide d'arbres syntaxiques. Ainsi, étant donné une
expression arithmétique en notation polonaise inverse ou postfixe, nous souhaitons écrire cette expression en
notation
habituelle ou infixe, il faudra faire attention au parenthésage (règle de priorité des opérateurs).
Dans un
premier temps et par souci de simplification, on se limitera seulement aux expressions utilisant l'opérateur d'addition et de
multiplication. | |||
énoncé note correction documentation | |||
Projet 6 -- Expressions logiques | |||
Auteur Florent Hivert | Deadline : Vendredi 23 Décembre à 19 heures | 12 Décembre 2005 | |
Expressions logiques
Nous allons manipuler dans ce TD les expressions logiques et plus précisemment nous allons écrire une fonction permettant
de déterminer les sous-formules d'une expression logique sans faire l'analyse de l'expression. De même que pour les
expressions arithmétiques, il existe plusieurs manières de noter une expression logique (notation infixe, suffixe et préfixe). Nous
n'utiliserons pour notre part que la notation polonaise ou préfixe pour nos expressions logiques. Afin de simplifier le programme,
nous considérons qu'une expression logique sera stockée dans une chaîne de caractères d'au plus | |||
énoncé note correction documentation | |||
Projet 7 -- Soutenance des projets | |||
06 Janvier 2005 | |||
Soutenance des projets
| |||
horaire de passage |
Copyright © 2003 - 2004 Gautier Loyauté, Last modified: Sat Aug 28 18:20:35 CEST 2004 |