Previous Up Next

3.2  Intermezzo


Exercice 27 — Une liste de prix Nobel.


Depuis 1901, des prix Nobel sont décernés dans les catégories suivantes :

On suppose disposer d’un fichier contenant l’ensemble des nominés (aux maximums 3 par catégories) codés suivant le modèle suivant :

Par exemple, on trouve dans ce fichier les lignes :

1921 "Physics" "Albert Einstein" "1879-03-14"^^xsd:date "Germany" "male"
1918 "Chemistry" "Fritz Haber" "1868-12-09"^^xsd:date "Prussia (now Poland)" "male"
1949 "Physiology or Medicine" "Antonio Caetano de Abreu Freire Egas Moniz" "1874-11-29"^^xsd:date "Portugal" "male"
1953 "Literature" "Sir Winston Leonard Spencer Churchill" "1874-11-30"^^xsd:date "United Kingdom" "male"
2009 "Peace" "Barack H. Obama" "1961-08-04"^^xsd:date "USA" "male"
Questions :
  1. Donnez la déclaration d’un modèle de structure d’identificateur Nomine_s pouvant coder les informations associées à un nominé du prix Nobel.
  2. Donnez la déclaration d’un tableau composé de MAXTAB cellules ayant le type définit ci-dessus.
  3. Donnez la définition d’une fonction de prototype :
    int ConstruireTableaux(struct Nomine_s *) ;
    
    qui prend sur l’entrée standard le fichier décrit ci-dessus, stocke les informations dans un tableau passé en paramètre (dont la définition est faîte dans la fonction appelante) et qui retourne le nombre de cellule construite.
  4. Donnez la définition d’une fonction de prototype :
      int CompareNomineParAgeDObtention(struct Nomine_s *, struct Nomine_s *) ;
    

qui retourne 0 si les ages auquels 2 nominés — représentés par des structures pointées passées en paramètres — ont obtenus le prix sont égaux ; cette fonction retourne 1 (resp. −1) si le première age est supérieur (resp. inférieur) au second.


Cette exercice a pour objet de vous fournir des données permettant de tester la fonction de tri que vous allez implanter dans la section suivante.



Pour tout commentaire : Alexandre Sedoglavic.
Previous Up Next