Conversion en binaire - Sujet 38 - EP NSI 2025

Moyen Officiel
Python (3.14.0)

Énoncé du problème

Exercice 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

Exercice 2

On considère la fonction binaire à la page suivante. Cette fonction prend en paramètre un entier positif a en écriture décimale et renvoie son écriture binaire sous la forme d’une chaine de caractères.

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

[Figure : potence de divisions euclidiennes successives par 2 du nombre 201 : 201 divisé par 2 donne 100 reste 1 ; 100 divisé par 2 donne 50 reste 0 ; 50 divisé par 2 donne 25 reste 0 ; 25 divisé par 2 donne 12 reste 1 ; 12 divisé par 2 donne 6 reste 0 ; 6 divisé par 2 donne 3 reste 0 ; 3 divisé par 2 donne 1 reste 1 ; 1 divisé par 2 donne 0 reste 1. Une flèche parcourt les restes du dernier au premier. Légende : 201 s’écrit 1100 1001₂.]

Compléter le code de la fonction binaire.

def binaire(a):
    '''convertit un nombre entier a en sa representation
    binaire sous forme de chaine de caractères.'''
    if a == 0:
        return ...
    bin_a = ...
    while ... :
        bin_a = ... + bin_a
        a = ...
    return bin_a

Exemples :

>>> binaire(83)
'1010011'
>>> binaire(6)
'110'
>>> binaire(127)
'1111111'
>>> binaire(0)
'0'

Les contraintes ci-dessous sont ajoutées par la plateforme et ne font pas partie du sujet.

Exercice 1

Contraintes :

  • tab est une liste Python non vide : 1 <= len(tab) <= 10^4
  • tab[i] est un nombre flottant (float) pour tout i
  • -10^6 <= tab[i] <= 10^6
  • La valeur renvoyée est un float : la moyenne des valeurs du tableau, obtenue en ajoutant les valeurs une à une dans l’ordre du tableau, puis en divisant une seule fois par le nombre de valeurs

Exercice 2

Contraintes :

  • a est un entier (int) avec 0 <= a <= 10^9 (le cas a = 0 est inclus)
  • La valeur renvoyée est une chaine de caractères (str) composée uniquement des caractères 0 et 1
  • L’écriture renvoyée ne comporte pas de zéro initial, sauf pour a = 0 qui donne '0'