Aller au contenu

Sujet n°28

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
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__':
    print(moyenne([1.0]) == 1.0)
    print(moyenne([1.0, 2.0, 4.0]) == 2.3333333333333335)

Exercice n°2

On considère la fonction dec_to_bin ci-dessous qui prend en paramètre un entier positif a en écriture décimale et qui renvoie son écriture binaire sous la forme d'une chaine de caractères.

1
2
3
4
5
6
7
def dec_to_bin(a):
    bin_a = ...
    a = a//2
    while a ... :
        bin_a = ... + bin_a
        a = ...
    return bin_a
Compléter la fonction dec_to_bin.

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°15, à la figure près.

Exemples

>>> dec_to_bin(83)
'1010011'

>>> dec_to_bin(127)
'1111111'
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def dec_to_bin(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__':
    print(dec_to_bin(83) == '1010011')
    print(dec_to_bin(127) == '1111111')