Aller au contenu

Index des sujets 2023

Corrigé sujet 28 - Année : 2023

Sujet 28 - 2023

Exercice 1

1
2
3
4
5
def moyenne(tab):
    somme = 0
    for valeur in tab:
        somme = somme + valeur
    return somme/len(tab)

Commentaires

Exercice classique de parcours d'une liste, un parcours par élément suffit les indices n'étant pas utilisés.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
def dichotomie(tab, x):
    """
        tab : tableau trie dans l'ordre croissant
        x : nombre entier
        La fonction renvoie True si tab contient x et False sinon
    """
    # cas du tableau vide
    if tab==[]: #(1)
        return False,1

    # cas ou x n'est pas compris entre les valeurs extremes
    if (x < tab[0]) or (x>tab[len(tab)-1]):
        return False,2 #(2)

    debut = 0
    fin = len(tab) - 1
    while debut <= fin:
        m = (debut+fin)//2 #(3)
        if x == tab[m]:
            return True
        if x > tab[m]:
            debut = m + 1
        else:
            fin = m-1 
    return False,3 #(4)
  1. Comme indiqué au dessus en commentaire : c'est le cas du tableau vide !
  2. Valeur cherchée en dehors des valeurs extrêmes, on rappelle que l'indice du dernier élément d'un tableau tab est len(tab)-1.
  3. Calcul de l'indice situé au milieu entre les deux indices de recherche.
  4. L'énoncé demande de renvoyer False,3 dans ce cas.

Attention

  1. On utilise de façon préférentielle des fonctions ayant toujours le même type de sortie, ici on a parfois un couple (booléen, entier) (comme False,2) parfois un booléen seul.