Aller au contenu

Ep 42

le document

l'algorithme

Issue de : 23-NSI-28⚓

EXERCICE 1⚓

Programmer la fonction multiplication, prenant en paramĂštres deux nombres entiers n1 et n2, et qui renvoie le produit de ces deux nombres.

Écrire une fonction moyenne qui prend en paramùtre un tableau d’entiers non vide et qui renvoie un nombre flottant donnant la moyenne de ces entiers.

Attention : il est interdit d’utiliser la fonction sum ou la fonction mean (module statistics) de Python

Exemple :

🐍 Script Python
>>> moyenne([1])
1.0
>>> moyenne([1, 2, 3, 4, 5, 6, 7])
4.0
>>. moyenne([1, 2])
1.5

RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def moyenne(tab):bksl-nl '''bksl-nl moyenne(list) -> floatbksl-nl EntrĂ©e : un tableau non vide d'entiersbksl-nl Sortie : nombre de type floatbksl-nl Correspondant Ă  la moyenne des valeurs prĂ©sentes dans lebksl-nl tableaubksl-nl '''bksl-nl somme = 0bksl-nl for elt in tab:bksl-nl somme += eltbksl-nl return somme / len(tab)bksl-nltry:bksl-nl assert moyenne([1, 2, 3, 4, 5, 6, 7]) == 4.0bksl-nl assert moyenne([1, 2]) == 1.5bksl-nl print('Tout semble correct 👍')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đŸ€”')bksl-nlbksl-nl



EXERCICE 2⚓

Le but de l’exercice est de complĂ©ter une fonction qui dĂ©termine si une valeur est prĂ©sente dans un tableau de valeurs triĂ©es dans l’ordre croissant.

ComplĂ©ter l’algorithme de dichotomie donnĂ© ci-aprĂšs.

🐍 Script Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def dichotomie(tab, x):
    """
    tab : tableau d'entiers trié dans l'ordre croissant
    x : nombre entier
    La fonction renvoie True si tab contient x et False sinon
    """
    debut = 0
    fin = len(tab) - 1
    while debut <= fin:
        m = ... 
        if x == tab[m]:
            return ... 
        if x > tab[m]:
            debut = m + 1
        else:
            fin = ... 
    return ... 

Exemples :

🐍 Script Python
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 28)
True
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 27)
False
>>> dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 1)
False
>>> dichotomie([], 28)
False
RĂ©ponse

Complétez le code ci-dessous

###
def dichotomie(tab, x):bksl-nl """bksl-nl tab : tableau d'entiers trié dans l'ordre croissantbksl-nl x : nombre entierbksl-nl La fonction renvoie True si tab contient x et False sinonbksl-nl """bksl-nl debut = 0bksl-nl fin = len(tab) - 1bksl-nl while debut <= fin:bksl-nl m = ...bksl-nl if x == tab[m]:bksl-nl return ...bksl-nl if x > tab[m]:bksl-nl debut = m + 1bksl-nl else:bksl-nl fin = ...bksl-nl return ...bksl-nlbksl-nl



Solution

###
def dichotomie(tab, x):bksl-nl """bksl-nl tab : tableau d’entiers triĂ© dans l’ordre croissantbksl-nl x : nombre entierbksl-nl La fonction renvoie True si tab contient x et False sinonbksl-nl """bksl-nl debut = 0bksl-nl fin = len(tab) - 1bksl-nl while debut <= fin:bksl-nl m = (debut + fin) // 2bksl-nl if x == tab[m]:bksl-nl return Truebksl-nl if x > tab[m]:bksl-nl debut = m + 1bksl-nl else:bksl-nl fin = m - 1bksl-nl return Falsebksl-nlbksl-nltry:bksl-nl assert dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 28) == Truebksl-nl assert dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 27) == Falsebksl-nl assert dichotomie([15, 16, 18, 19, 23, 24, 28, 29, 31, 33], 1) == Falsebksl-nl assert dichotomie([], 28) == Falsebksl-nl print('Tout semble correct 👍')bksl-nlbksl-nlexcept AssertionError as asser:bksl-nl print('Le rĂ©sultat de votre fonction n\'est pas conforme đŸ€”')bksl-nl