TÉLÉCOM SudParis 2ème
année
TP Noté CSC4508/M2 du 20/06/14
Modalités
Durée : 1 heure 30
Tous documents autorisés.
Les questions sont indépendantes les unes des autres. Aussi,
n'hésitez pas à lire tout le sujet avant de commencer pour déterminer
l'ordre dans lequel vous souhaitez traiter les questions.
Le barème est donné à titre indicatif des poids entre les différentes
questions.
La « livraison » de votre travail en fin de TP noté se fera par
remontée sous Moodle (rubrique « TP noté de 3 heures ») du fichier
d'extension tgz constitué de la manière suivante :
cd votreRepertoireDeTravailPourCSC4508M2 tar cvfz ${USER}.tgz ${USER}_TPNote2014Session2
NB: Si vous êtes plus à l'aise en écrivant vos réponses sur une copie
plutôt qu'en les tapant sur ordinateur, vous pouvez rendre également
une copie papier à l'enseignant qui vous surveille. En fin d'épreuve,
même si vous ne rendez pas de copie, passez voir l'enseignant qui vous
surveille pour lui signaler explicitement que vous ne rendez pas de
copie.
Préparation
cd votreRepertoireDeTravailPourCSC4508M2
wget http://www-inf.it-sudparis.eu/COURS/CSC4508/Current/Documents/ExoCoursSys/TPNote2014Session2/WWW/tPNote2014Session2.tgz
tar xvfz tPNote2014Session2.tgz
mv TPNote2014Session2 ${USER}_TPNote2014Session2
cd ${USER}_TPNote2014Session2
Question 1 : des chiffres et des lettres
On souhaite développer une application chiffres_lettres.c qui
analyse les caractères saisi par l'utilisateur. Pour cela, on
souhaite que le programme effectue les opérations suivantes:
- lire le flux de caractères arrivant sur l'entrée standard
- séparer les chiffres et les lettres
- effectuer l'opération appropriée en fonction du type de caractère, à savoir :
- sommer les chiffres
- réaliser un spectre de fréquence pour les lettres
- afficher le résultat obtenu
Voici un exemple d'exécution du programme:
$ echo "bonjour 123" |./chiffres_lettres
Somme des chiffres: 6
La lettre la plus frequente est : o
Pour cela, le programme est composé de trois processus entités :
- un distributeur (en charge de la répartition des caractères) ;
- un additionneur (opérant sur les chiffres) ;
- un compteur (opérant sur les lettres).
Un squelette de programme vous est fourni (voir le fichier
chiffres_lettres.c). Ce squelette comporte la création des
processus ainsi que le traiement des données, mais il manque
les communications entre les processus.
Modifiez ce squelette chiffres_lettres.c afin de mettre en
oeuvre les communications entre les processus de façon à ce
que le programme fonctionne correctement.
Question 2 : find
On souhaite disposer d'une application permettant de retrouver un
fichier dans une arborescence. Il s'agit, en fait, de développer une
application faisant l'équivalent de la commande :
$ find . -name <fichier>
Question 2.1
On souhaite dans un premier temps se contenter de chercher le
fichier dans le répertoire courant (sans prendre en compte le
contenu des sous-répertoires).
Compléter le programme Q2/Q2.1/my_find.c afin qu'il puisse détecter
si le répertoire courant contient le fichier recherché.
Question 2.2
On souhaite maintenant que le programme cherche le fichier
dans le répertoire courant ainsi que ses
sous-répertoire. Voici un exemple d'exécution du programme
souhaité:
$ ./my_find toto.c
./toto.c
./src/utils/test/toto.c
./exemples/C/toto.c
Compléter le programme Q2/Q2.2/my_find.c afin qu'il ait le
comportement souhaité.
|