Td tp programmation unix

Disponible uniquement sur Etudier
  • Pages : 10 (2496 mots )
  • Téléchargement(s) : 0
  • Publié le : 27 décembre 2010
Lire le document complet
Aperçu du document
D´partement d’Informatique e Facult´ des Sciences de Luminy e

Jeudi 10 juin 2009 – Dur´e 2h e Licence MI, UE INF5, resp. E. Thiel

Programmation Unix
Notes de Cours/TD/TP autoris´es ; autres documents, calculettes, ordinateurs interdits. e e e e Ne r´pondez pas ` plusieurs questions en mˆme temps ; respectez le d´coupage de l’´nonc´, sous peine e a e de nullit´. e

I.

R´sultats defootball en bash e

On se propose de r´aliser un script bash permettant de calculer les classements au premier tour du e mondial de football. La comp´tition est organis´e comme suit : au premier tour, les 32 ´quipes participant ` la comp´tition e e e a e sont organis´es en 8 groupes de 4 ´quipes, les groupes ´tant nomm´s de A ` H. Dans un groupe, e e e e a ` chaque ´quipe joue contre les 3 autres,ce qui fait 6 matchs par groupe. A l’issue de ce premier tour, e on classe les ´quipes dans chaque groupe (nous reviendrons plus loin sur les r`gles de classement) ; e e les deux premi`res ´quipes de chaque groupe sont autoris´es ` passer au tour suivant, les huiti`mes e e e a e de finales (soit 8 matchs). Les quarts de finales font 4 matchs, les demis finales en font 2, et les finales (la grande et lapetite) en font encore 2. En tout il y a donc 64 matchs, num´rot´s de 1 ` 64. e e a Pour faire notre programme, on enregistre chaque groupe dans un fichier texte nomm´ groupeX.txt e o` X est remplac´ par le nom du groupe. Ce fichier contient le nom de chacune des 4 ´quipes, avec u e e un nom par ligne ; voir ci-dessous l’exemple du groupe A o` figure l’´quipe de France. u e Chaque match est d´critdans un fichier texte nomm´ matchY.txt o` Y est remplac´ par le num´ro e e u e e du match. Le format est le suivant : la ligne 1 contient la date du match ; les lignes 2 et 3 d´signent e l’´quipe 1 et l’´quipe 2 ; les lignes 4 et 5 m´morisent le nombre de buts marqu´s par l’´quipe 1 et e e e e e par l’´quipe 2, respectivement. On montre ci-dessous la description des 6 matchs du groupe A (les escores sont malheureusement totalement fantaisistes !). groupeA.txt
Afrique du Sud Mexique Uruguay France

match1.txt
11 juin, 16h00 Afrique du Sud Mexique 1 1

match2.txt
11 juin, 20h30 France Uruguay 2 1

match17.txt
16 juin, 20h30 Afrique du Sud Uruguay 2 0

match20.txt
17 juin, 20h30 France Mexique 1 0

match33.txt
22 juin, 16h00 Mexique Uruguay 2 1

match34.txt
22 juin, 16h00France Afrique du Sud 3 0

1) L’´quipe qui gagne un match re¸oit 3 points et la perdante n’en re¸oit aucun. Si les ´quipes e c c e font match nul, elles re¸oivent chacune 1 point. c ´ Ecrire une fonction AffiScore qui prend 2 arguments : le nombre de buts marqu´s par l’´quipe 1, e e et le nombre de buts marqu´s par l’´quipe 2. Elle affiche sur une ligne les trois valeurs suivantes, e e s´par´es parun espace : le nombre de points re¸us pour l’´quipe 1 (soit 3, 1 ou 0) ; la diff´rence entre e e c e e le nombre de buts marqu´s par l’´quipe 1 et le nombre de buts qu’elle a encaiss´s ; le nombre de buts e e e marqu´s par l’´quipe 1. e e Par exemple, AffiScore 5 1 affichera 3 4 5 ; AffiScore 2 2 affichera 1 0 2 ; AffiScore 1 2 affichera 0 -1 1. 1

´ 2) Ecrire la fonction ResultatMatch qui prend enarguments le num´ro n du match (entre 1 et 64) e et le nom m de l’´quipe (par exemple "France”). La fonction lit le fichier d´crivant le match n, sinon e e affiche un message d’erreur et ´choue ; puis elle cherche si l’´quipe m correspond ` l’´quipe 1 ou ` e e a e a l’´quipe 2 du match, sinon elle affiche un message d’erreur et ´choue ; enfin, elle appelle AffiScore e e pour afficher le score (points,diff´rences et buts) de l’´quipe m, puis r´ussit. Par exemple : e e e
$ ResultatMatch 65 France Erreur lecture match65.txt $ ResultatMatch 2 Marseille Erreur ´quipe e $ 3 $ 0 ResultatMatch 2 France 1 2 ResultatMatch 17 Uruguay -2 0

´ 3) Ecrire la fonction ResultatsEquipe qui prend pour argument le nom m d’une ´quipe. La e fonction cherche tous les matchs o` cette ´quipe a jou´ parmi les matchs du...
tracking img