Aller au contenu

Sujet n°30

Sujet original

Pour télécharger l'énoncé original, cliquer ici.

Exercice n°1

Écrire une fonction moyenne qui prend en paramètre un tableau non vide de nombres flottants et qui renvoie la moyenne des valeurs du tableau. Les tableaux seront représentés sous forme de liste Python.

Exemples

>>> moyenne([1.0])
1.0

>>> moyenne([1.0, 2.0, 4.0])
2.3333333333333335
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def moyenne (tab):
    '''
    tab - list, un tableau non vide de flottants
    Sortie: float, moyenne des valeurs présentes dans tab
    '''
    somme = 0
    for elt in tab:
        somme = somme + elt
    return somme/len(tab)


if __name__ == '__main__':
    # Exemples de l'énoncé
    print(moyenne([1.0]) == 1.0)
    print(moyenne([1.0, 2.0, 4.0]) == 2.3333333333333335)

    # Exemples supplémentaires
    print(moyenne([1.0, 4.0]) == 2.5)
    print(moyenne([4.0, 4.0, 4.0]) == 4.0)

Exercice n°2

On considère la fonction binaire ci-dessous qui prend en paramètre un entier positif a
en écriture décimale. Cette fonction renvoie l’écriture binaire de a sous la forme d'une chaîne de caractères.

L’algorithme utilise la méthode des divisions euclidiennes successives comme l’illustre l’exemple ci-après.

divisions successives

1
2
3
4
5
6
7
def binaire(a):
    bin_a = ...
    a = a//2
    while a ... :
        bin_a = ... + bin_a
        a = ...
    return bin_a

Compléter la fonction binaire.

Commentaires sur le code original
  1. Pour télécharger l'original du fichier à compléter, cliquer ici.

  2. Identifiez bien le type de la valeur en sortie : c'est une chaîne de caractères.

  3. Cet exercice est identique au deuxième exercice du sujet n°31, à la figure près.

Exemples

>>> binaire(83)
'1010011'

>>> binaire(127)
'1111111'

>>> binaire(0)
'0'
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def binaire(a):
    bin_a = str(a%2)
    a = a // 2
    while a != 0 :
        bin_a = str(a%2) + bin_a
        a = a//2
    return bin_a


if __name__ == '__main__':
    # Exemples de l'énoncé
    print(binaire(83) == '1010011')
    print(binaire(127) == '1111111')
    print(binaire(0) == '0')

    # Exemples supplémentaires
    print(binaire(1) == '1')
    print(binaire(16) == '10000')