Aller au contenu

Ep 34

‚Ė∂ T√©l√©charger le sujet en pdf.

EXERCICE 1‚öďÔłé

Programmer la fonction moyenne prenant en param√®tre un tableau d'entiers tab (de type list) qui renvoie la moyenne de ses √©l√©ments si le tableau est non vide. Proposer une fa√ßon de traiter le cas o√Ļ le tableau pass√© en param√®tre est vide.

Dans cet exercice, on s’interdira d’utiliser la fonction Python sum.

Exemples :

ūüźć Script Python
    >>> moyenne([5,3,8])
    5.333333333333333
    >>> moyenne([1,2,3,4,5,6,7,8,9,10])
    5.5
    >>> moyenne([])
    # Comportement différent suivant le traitement proposé.

Réponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
def moyenne(tab):bksl-nl if tab == []:bksl-nl print('Le tableau donné est vide')bksl-nl return Nonebksl-nl else:bksl-nl somme = 0bksl-nl for elt in tab:bksl-nl somme += eltbksl-nl return somme / len(tab)bksl-nlbksl-nl



EXERCICE 2‚öďÔłé

On considère un tableau d'entiers tab (de type list) dont les éléments sont des 0 ou des 1). On se propose de trier ce tableau selon l'algorithme suivant : à chaque étape du tri, le tableau est constitué de trois zones consécutives, la première ne contenant que des 0, la seconde n'étant pas triée et la dernière ne contenant que des 1.

Zone de 0Zone non triéeZone de 1

Tant que la zone non triée n'est pas réduite à un seul élément, on regarde son premier élément :

  • si cet √©l√©ment vaut 0, on consid√®re qu'il appartient d√©sormais √† la zone ne contenant que des 0 ;
  • si cet √©l√©ment vaut 1, il est √©chang√© avec le dernier √©l√©ment de la zone non tri√©e et on consid√®re alors qu‚Äôil appartient √† la zone ne contenant que des 1.

Dans tous les cas, la longueur de la zone non triée diminue de 1.

Recopier sous Python en la complétant la fonction tri suivante :

Question
ūüźć Script Python

Exemple :

ūüźć Script Python
    >>> tri([0,1,0,1,0,1,0,1,0])
    [0, 0, 0, 0, 0, 1, 1, 1, 1]       

Réponse

Complétez le code ci-dessous

###
def tri(tab):bksl-nl # i est le premier indice de la zone non triée,bksl-nl # j est le dernier indice de cette zone non triée.bksl-nl # Au début, la zone non triée est le tableau complet.bksl-nl i = ...bksl-nl j = ...bksl-nl while i != j:bksl-nl if tab[i]== 0:bksl-nl i = ...bksl-nl else:bksl-nl valeur = tab[j]bksl-nl tab[j] = ...bksl-nl ...bksl-nl j = ...bksl-nl ...bksl-nlbksl-nl



Solution

###
def tri(tab):bksl-nl # i est le premier indice de la zone non triée,bksl-nl # j est le dernier indice de cette zone non triée.bksl-nl # Au début, la zone non triée est le tableau complet.bksl-nl i = 0bksl-nl j = len(tab) - 1bksl-nl while i != j :bksl-nl if tab[i] == 0:bksl-nl i = i + 1bksl-nl else :bksl-nl valeur = tab[j]bksl-nl tab[j] = tab[i]bksl-nl tab[i] = valeurbksl-nl j = j - 1bksl-nl return tabbksl-nlbksl-nl