Aller au contenu

Index des sujets 2023

Corrigé sujet 06 - Année : 2023

Sujet 06 - 2023

Exercice 1

1
2
3
4
5
def recherche(elt,tab):
    for i in range(len(tab)-1,-1,-1):
        if elt==tab[i]:
            return i
    return len(tab)

Commentaires

Le sujet demande de rechercher la dernière occurrence, la correction proposée ici parcourt la liste à l'envers et renvoie la première occurrence rencontrée. Il faut donc dans ce cas savoir à écrire un parcours à l'envers à l'aide de range. On peut faire aussi parcourir dans le sens normal jusqu'à la fin et mettre la jour l'indice à chaque fois qu'on rencontre la valeur:

    def recherche(tab, n):
    indice_solution = len(tab)
    for i in range(len(tab)):
        if tab[i] == n:
            indice_solution = i
    return indice_solution

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from math import sqrt   # import de la fonction racine carree

def distance(point1, point2): 
    """ Calcule et renvoie la distance entre deux points. """
    return sqrt((point1[0]-point2[0])**2 + (point1[1]-point2[1])**2) #(1)

def plus_courte_distance(tab, depart):
    """ Renvoie le point du tableau tab se trouvant a la plus     
    courte distance du point depart."""
    point = tab[0]
    min_dist = distance(point,depart) #(2)
    for i in range (1, len(tab)): #(3)
        if distance(tab[i], depart) < min_dist:
            point = tab[i]
            min_dist = distance(tab[i],depart)
    return point
  1. Un point est un tuple (abcisse,ordonne) donc point[0] contient l'abscisse et point[1] l'ordonnée.
  2. On initialise le minimum à la distance entre le point de départ et le premier point de la liste (celui d'indice 0)
  3. Algorithme classique de recherche du minimum