Aller au contenu

Index des sujets 2023

Corrigé sujet 34 - Année : 2023

Sujet 34 - 2023

Exercice 1

1
2
3
4
5
6
def moyenne(tab):
    assert tab!=[], "erreur"
    somme = 0
    for valeur in tab:
        somme = somme + valeur
    return somme/len(tab)

Commentaire

On utilise un assert pour le générer une erreur si le tableau est vide.

Exercice 2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
def tri(tab):
    #i est le premier indice de la zone non triee, j le dernier indice. 
    #Au debut, la zone non triee est le tableau entier.
    i= 0
    j= len(tab)-1 #(1)
    while i != j :
        if tab[i]== 0:
            i = i + 1 #(2) 
        else :
            valeur = tab[j]
            tab[j] = tab[i] #(3)
            tab[i] = valeur
            j= j-1 #(4)
    return tab
  1. Le dernier élément d'un tableau tab a pour indice len(tab)-1
  2. Si l'élément est un 0, on incrémente le debut de la zone non triée d'indice i. La zone non triée diminue "par la gauche".
  3. Sinon, on échange cette valeur avec la fin de zone non triée (située en indice j).
  4. La zone non triée diminue "par la droite", on décrémente donc sa fin d'indice j

Attention

Les lignes 10 à 12 qui permettent d'échanger tab[j] et tab[i] en utilisant la variable temporaire valeur peuvent être simplifiées en remarquant que tab[i] vaut forcément 1 dans cette branche du if.