Aperçu du sujet
EXERCICE 1 (6 points) Cet exercice porte sur la programmation objet en Python et les graphes. Nous avons représenté sous la forme d’un graphe les liens entre cinq différents sites Web : Figure 1. Graphe avec 5 sites La valeur de chaque arête représente le nombre de citations (de liens
EXERCICE 1 (6 points) Cet exercice porte sur la programmation objet en Python et les graphes. Nous avons représenté sous la forme d’un graphe les liens entre cinq différents sites Web : Figure 1. Graphe avec 5 sites La valeur de chaque arête représente le nombre de citations (de liens hypertextes) d’un site vers un autre. Ainsi, le site site4 contient 6 liens hypertextes qui renvoient vers le site site5. Les sites sont représentés par des objets de la classe dont le code est Site partiellement donné ci-dessous. La complétion de la méthode fera calculPopularite l’objet d’une question ultérieure 1 class Site: 2 3 def __init__(self, nom): 4 self.nom = nom 5 self.predecesseurs = [] 6 self.successeurs = [] 7 self.popularite = 0 8 self.couleur = 'blanche' 9 10 def calculPopularite(self): 11 ... 24-NSIJ1ME1 Page : 2 / 15 Le graphe précédent peut alors être représenté ainsi : # Description du graphe 1 2 s1, s2, s3, s4, s5 = Site('site1'), Site('site2'), Site('site3'), Site('site4'), Site('site5') 3 s1.successeurs = [(s3,3), (s4,1), (s5,3)] 4 s2.successeurs = [(s1,4), (s3,5), (s4,2)] 5 s3.successeurs = [(s5, 3)] 6 s4.successeurs = [(s1,2), (s5,6)] 7 s5.successeurs = [(s3,4)] 8 s1.predecesseurs = [(s2,4), (s4,2)] 9 s2.predecesseurs = [] 10 s3.predecesseurs = [(s1,3), (s2,5), (s5,4)] 11 s4.predecesseurs = ... 12 s5.predecesseurs = ... 1. Expliquer la ligne 9 de ce code. 2. Les lignes 11 et 12 de cette description du graphe ne sont pas complètes. Recopier et compléter le code des lignes 11 et 12. 3. Donner et expliquer la valeur de l’expression suivante : s2.successeurs[1][1] Pour mesurer la pertinence d’un site, on commence par lui attribuer un nombre appelé valeur de popularité qui correspond au nombre de fois qu’il est cité dans les autres sites, c’est-à-dire le nombre de liens hypertextes qui renvoient sur lui. Par exemple, la valeur de popularité du site site4 est 3. 4. Donner, selon cette définition, la valeur de popularité du site site1. 5. Écrire sur votre copie le code de la méthode de la classe calculPopularite qui affecte à l’attribut la valeur de popularité correspondante Site popularite et renvoie cet attribut. Afin de calculer cette valeur de popularité pour chacun des sites, nous allons faire un parcours dans le graphe de façon à exécuter la méthode pour calculPopularite chacun des objets. 24-NSIJ1ME1 Page : 3 / 15 Voici le code de la fonction qui permet le parcours du graphe : 1