Aller au contenu

Index des sujets 2023

Corrigé sujet 23 - Année : 2023

Sujet 23 - 2023

Exercice 1

1
2
3
4
5
6
def selection_enclos(table_animaux,num_enclos):
    resultat = []
    for animal in table_animaux:
        if animal['enclos']==num_enclos:
            resultat.append(animal)
    return resultat

Commentaires

Revoir le chapitre traitement de données en tablesdu programme de première en cas de difficultés (et aussi l'utilisation des dictionnaires)

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def trouver_intrus(tab, g, d):
    '''
    Renvoie la valeur de l'intrus situé entre les indices g et d 
    dans la liste tab où 
    tab vérifie les conditions de l'exercice,
        g et d sont des multiples de 3.
    '''
    if g == d:
        return tab[g] #(1)

    else:
        nombre_de_triplets = (d - g)// 3
        indice = g + 3 * (nombre_de_triplets // 2)
        if tab[indice]==tab[indice+1] : #(2)
            return trouver_intrus(tab,indice+3,d) #(3)
        else:
            return trouver_intrus(tab,g,indice)
  1. La zone de recherche se limite à un élément : l'intrus. On peut mettre indifféremment tab[g] ou tab[d], ils sont égaux puisque g=d ici.
  2. On suit l'algorithme proposé dans l'énoncé et on compare l'élément du milieu à son voisin de droite
  3. Attention à la légère différence de traitement dans un cas ou passe à indice+3 car les éléments sont situés strictement avant l'intrus

Attention

Sujet sans doute difficile et qui présente un algorithme nouveau (bien que semblable à une recherche par dichotomie)