Aperçu du sujet
Exercice 1 (6 points) Cet exercice porte sur les graphes et la programmation orientée objet. Certains sportifs sont adeptes des courses d’orientation : munis d’une fiche de contrôle, d’une carte et d’une boussole, les participants doivent trouver leur itinéraire dans le but de relier des points de contrôle, appelés balises.
Exercice 1 (6 points) Cet exercice porte sur les graphes et la programmation orientée objet. Certains sportifs sont adeptes des courses d’orientation : munis d’une fiche de contrôle, d’une carte et d’une boussole, les participants doivent trouver leur itinéraire dans le but de relier des points de contrôle, appelés balises. Chaque balise est numérotée et équipée d’un poinçon permettant de l’identifier : lorsqu’un participant trouve une balise, il poinçonne sa fiche de contrôle avec ce poinçon, différent d’une balise à l’autre. Le site La forêt des chênes propose trois itinéraires de courses d’orientation, de niveaux différents : un itinéraire vert de niveau facile, un itinéraire rouge de niveau moyen, et un itinéraire noir de niveau difficile. Partie A Le site La forêt des chênes est représenté par le graphe ci-dessous dans lequel chaque nœud correspond à une balise et chaque arête représente un chemin reliant deux balises. Pour faire référence aux couleurs des itinéraires, on utilise des symboles avec la correspondance suivante : • un triangle pour indiquer que l’itinéraire vert passe par cette balise ; • un carré pour indiquer que l’itinéraire rouge passe par cette balise ; • un pentagone pour indiquer que l’itinéraire noir passe par cette balise. Figure 1. Graphe représentant le site La forêt des chênes Une balise peut donc faire partie d’un ou de plusieurs itinéraires. Le point de départ est commun aux trois itinéraires : il s’agit de la balise portant le numéro 1. On peut alors constater, par lecture du graphe, que l’itinéraire vert et 25-NSIJ1G11 Page : 2 / 18 l’itinéraire noir se terminent à la balise numéro 12, tandis que l’itinéraire rouge se termine à la balise numéro 8. On choisit de modéliser ce site en Python en utilisant une classe dont le code Balise est donné en Annexe. Cette Annexe n’est pas à rendre avec la copie. Chaque balise du site est représentée par une instance de la classe et a pour Balise attributs : • , un nombre entier correspondant au numéro de la balise ; num_balise • , une liste de chaîne de caractères dont chaque élément couleurs_balise est une couleur de la balise ; • , une liste d’instances de la classe ; voisines Balise • , un indicateur booléen qui indique si la balise a déjà été poinçonnée visitee ou non (cet attribut utilisé dans la partie B). 1. Recopier et compléter le code de