Aller au contenu

Index des sujets 2022

Corrigé sujet 01 - Année : 2022

Sujet 01 - 2022

Exercice 1

1
2
3
4
5
6
def recherche(caractere,mot):
    occurrence = 0
    for c in mot:
        if c == caractere:
            occurrence += 1
    return occurrence

Commentaires

C'est un exercice classique de parcours d'un itérable en comptant les occurrences d'apparition d'une valeur. Un parcours par élément suffit, les indices des occurrences n'étant pas utilisées.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Pieces = [100,50,20,10,5,2,1]
def rendu_glouton(arendre, solution=[], i=0):
    if arendre == 0:
        return solution #
    p = Pieces[i]
    if p <= arendre : #
        solution.append(p)
        return rendu_glouton(arendre - p, solution, i)
    else :
        return rendu_glouton(arendre, solution, i+1) #

Attention

  • Le code fourni utilise un objet mutable (une liste) comme paramètre par défaut d'une fonction :
    def rendu_glouton(arendre, solution=[], i=0):
    
    C'est une très mauvaise pratique car source d'erreurs, en effet la variable solution étant mutable elle est modifiée par la fonction lors d'un premier appel et ne sera donc plus vide lors des appels suivants. Pour constater le problème, faire plusieurs appels à cette fonction sans spécifier les arguments ayant des valeurs par défaut. Pour une solution à ce problème, on pourra par exemple consulter ce site