BACCALAURÉAT SESSION 2023 __________________ Épreuve de l’enseignement de spécialité NUMÉRIQUE et SCIENCES INFORMATIQUES Partie pratique Classe Terminale de la voie générale _________________ Sujet n°06 __________________ DURÉE DE L’ÉPREUVE : 1 heure Le sujet comporte 3 pages numérotées de 1 / 3 à 3 / 3 Dès que le sujet vous est remis, assurez-vous qu’il est complet. Le candidat doit traiter les 2 exercices. 1 / 3 EXERCICE 1 (4 points) Programmer la fonction recherche, prenant en paramètre un tableau non vide tab (de type list) d'entiers et un entier n, et qui renvoie l'indice de la dernière occurrence de l'élément cherché. Si l'élément n'est pas présent, la fonction renvoie la longueur du tableau. Exemples : >>> recherche([5, 3], 1) 2 >>> recherche([2, 4], 2) 0 >>> recherche([2, 3, 5, 2, 4], 2) 3 EXERCICE 2 (4 points) On souhaite programmer une fonction donnant la distance la plus courte entre un point de départ et une liste de points. Les points sont tous à coordonnées entières. Les points sont donnés sous la forme d'un tuple de deux entiers. La liste des points à traiter est donc un tableau, non vide, de tuples. On rappelle que la distance entre deux points du plan de coordonnées (x ; y) et (x' ; y') est donnée par la formule : d = √(x − x')2+ (y − y')2. On importe pour cela la fonction racine carrée (sqrt) du module math de Python. Compléter le code des fonctions distance et plus_courte_distance fournies à la page suivante pour qu’elles répondent à leurs spécifications. 2 / 3 from math import sqrt # import de la fonction racine carrée def distance(point1, point2): """ Calcule et renvoie la distance entre deux points. """ return sqrt((...)**2 + (...)**2) def plus_courte_distance(tab, depart): """ Renvoie le point du tableau tab se trouvant à la plus courte distance du point depart.""" point = tab[0] min_dist = ... for i in range (1, ...): if distance(tab[i], depart)...: point = ... min_dist = ... return point Exemples : >>> distance((1, 0), (5, 3)) 5.0 >>> distance((1, 0), (0, 1)) 1.4142135623730951 >>> plus_courte_distance([(7, 9), (2, 5), (5, 2)], (0, 0)) (2, 5) >>> plus_courte_distance([(7, 9), (2, 5), (5, 2)], (5, 2)) (5, 2) 3 / 3