You are on page 1of 3
Université de La Manoubar Année Universitaire Eeote Natio Informatique 2016-2017, sles Sciences EXAMEN DE LA SESSION PRINCIPALE. Mode Atgoritmigue Structures de Données et Programmation © Date : 03/01/2017 asset Durée: 2h Enselgwants: K, en Rhum, F Ben Ticha, M. Lai, R. Cheb Documents: NA mique (12 point: Exercice 1 (8 points) Dans cet exercice, les opérations de base sur les tistes, les piles et les files pourront étre utilisées sans étre développées, Dans une agence de sécurité sociale, ensemble des dossiers & traiter est modélisé par une Pile, Tout dossier est représenté par: un numéro unique, une priorité (1 : priorité élevée et 2 priorité (sous forme dune chaine de caraetéres) et un code-maladie ible), une date de dé d2 et -1sinon. 3. Ecrire un module permeitant de placer les dossiers de priorité 1 au-dessus des dossiers de priorité 2 (ordre dapparition des dossiers de méme priorité ne doit pas changer). La Pile étant dans ce contexte peu adéquate, nous nous intéressons dans ce qui suit au déplacement des dossiers de la Pile vers une File. 4. Donner Ja représentation de la File de dossiers. 5. Ecrire un module permettant de déplacer les dossiers de la Pile initiale vers une File, A ce niveau, nous n’imposerons pas que les dossiers soient organisés par priorité dans Ia File, ‘rire un module permettant de 6. Les dossiers ayant le code maladie c doivent avoir la priorité 1, mettre 4 jour la priorité des dossiers selon cette nouvelle régle. 7. Sans utiliser de structure intermédiaire, écrire un module qui étant donnée une File permet de compter le nombre de dossiers qui y sont contenus. La File doit resterinchangée. 8. On suppose donnée fa procédure traiter-dossier(nundossier : entier), éerire un module permettant de trater tous les dossiers de priorité 1 en premier lieu, puis trater les dossiers de priorité 2 en deuxiéme lieu. 9. Le choix dune File pour représenter les dossiers reste-il valable étant donnée la nouvelle régle ‘exécution des dossiers par priorité. Justfier volre réponse et proposer Ia (ou les) structures adéquate(s) si votre réponse est négative. 3 Dans cet exercice, les opérations de base sur les listes, les piles et les files pourront étre utilisées sans étre développées. (On stintéresse dans cet exercice aux arbres binaires, et on utilisera une représentation chainée pour rire une fonction ré sive qui, étant donné un arbre binaire et un noeud d’adresse p de cet arbre, refoure un pointeur sur le pére de p s'il existe et Nil sinon, 2. Berire une procédure qui, étant donné un arbre binaire et un nocud d’adresse p de eet arbre, retourne Ia liste des ascendants de p. On ruppelle que A est ascendant de B si A est le pére de B ou un ascendant du pére de B. 3. Ferire une fonction qui, étant donné un arbre binaire B et un noeud x de eet arbre, retoume la hauteur h de x. On rappelle que la hauteur d'un noeud x d'un arbre binaire B est définie comme suit: h(x) 0 six estracine de Bet h(x) =1+h(y) si y est le pire de x. P: ic Programmation C (8 point: Dans cette partie, tout module wiilisé doit ctre développé On se propose de gérer les ‘délégations et chaque délégation contient des bureaux de vote. Une dét — Nom = Nombre d"habitants stes des bureaux de vote dans une ville, La ville est composée de ion est caractérisée par les informations suivantes + = Code postal = Liste des bureaux de vote of chaque bureau de vote est dgerit par son nom et le nombre d'électeurs inserits ordre croissant de leur nombre é’électeurs. La figure ei- La liste des bureaux de vote est trige dans I dessous décrit un exemple pour Ia ville de Tu 3 ElOmrane aa 109 pbakradies | 36055] 107) | | [roman 22:25] 109] . cede [1874 ae 129 ey 1, Détinir en C les structures de donns aukéquates pour la représentation de asvelopper, les px formations. metres ne sont pas précisés. La liste doit Dans tous les sous-pro umes toujours étre passée en paramétre, Ecrire un sous-programme ajjouterBureau () permettant dinsérer un bureau de vote dans fa liste des bureaux de vote d'une délégation de fagon 4 maintenie le tride Ia liste, 3. Ecrire un sous-programme ajouterbélégation () permettant dajouter une délégation a la liste des délégations de a ville, La position d'insertion sera choisie de fagon a optimiser te traitement. (On souhaite maintenant connaitre le nombre de personnel volontaire nécessaire a assurer la gestion et le suivi des votes dans la ville. On suppose qu’on a besoin d'un volontaire par 100 électeurs 4. Ecrire un sous-programme nombreVolontaires() permettant de caleuler pour une dale question, la délégation est représentée par un pointeur sur la structure de données qui la modélise. n donnée le nombre de volontaires nécessaires au bon déroulement des votes. Dans cette 5. Ecrire un sous programme nombreTotal() permettant de caleuler le nombre total de volontaires nécessaire pour la ville. Pour chaque délégation, on souhaite fusionner les bureaux de vote oit le nombre d’électeurs est inférieur A un seuil fixé. 6. Ecrire un sous-programme fusionnerBureaux () permetiantd’effectuer cette opération étant donné que le seuil défini est passé en paramétre.

You might also like