Ep 43
ⶠTélécharger le sujet en pdf.
EXERCICE 1âïž
Ăcrire une fonction ecriture_binaire_entier_positif
qui prend en paramĂštre un entier positif n
et renvoie une liste d'entiers correspondant Ă lâĂ©criture binaire de n
.
Ne pas oublier dâajouter au corps de la fonction une documentation et une ou plusieurs assertions pour vĂ©rifier les prĂ©-conditions.
Exemples :
>>> ecriture_binaire_entier_positif(0)
[0]
>>> ecriture_binaire_entier_positif(2)
[1, 0]
>>> ecriture_binaire_entier_positif(105)
[1, 1, 0, 1, 0, 0, 1]
Aide :
- l'opérateur
//
donne le quotient de la division euclidienne :5//2
donne2
; - l'opérateur
%
donne le reste de la division euclidienne :5%2
donne1
; append
est une méthode qui ajoute un élément à une liste existante :- Soit
T=[5,2,4]
, alorsT.append(10)
ajoute10
Ă la listeT
. Ainsi,T
devient[5,2,4,10]
.
- Soit
reverse
est une méthode qui renverse les éléments d'une liste.- Soit
T=[5,2,4,10]
. AprĂšsT.reverse()
, la liste devient[10,4,2,5]
.
- Soit
On remarquera quâon rĂ©cupĂšre la reprĂ©sentation binaire dâun entier n
en partant de la gauche en appliquant successivement les instructions :
b = n%2
n = n//2
répétées autant que nécessaire.
RĂ©ponse
Complétez le code ci-dessous
Solution
EXERCICE 2âïž
La fonction tri_bulles
prend en paramĂštre une liste T
dâentiers non triĂ©s et renvoie la
liste triée par ordre croissant.
Le tri à bulles est un tri en place qui commence par placer le plus grand élément en derniÚre position en parcourant la liste de gauche à droite et en échangeant au passage
les Ă©lĂ©ments voisins mal ordonnĂ©s (si la valeur de lâĂ©lĂ©ment dâindice i
a une valeur strictement supĂ©rieure Ă celle de lâindice i + 1
, ils sont échangés). Le tri place ensuite
en avant-derniĂšre position le plus grand Ă©lĂ©ment de la liste privĂ©e de son dernier Ă©lĂ©ment en procĂ©dant encore Ă des Ă©changes dâĂ©lĂ©ments voisins. Ce principe est rĂ©pĂ©tĂ© jusquâĂ
placer le minimum en premiĂšre position.
Exemple : pour trier la liste [7, 9, 4, 3]
:
- premiÚre étape : 7 et 9 ne sont pas échangés, puis 9 et 4 sont échangés, puis 9 et 3 sont échangés, la liste est alors
[7, 4, 3, 9]
- deuxiÚme étape : 7 et 4 sont échangés, puis 7 et 3 sont échangés, la liste est alors
[4, 3, 7, 9]
- troisiÚme étape : 4 et 3 sont échangés, la liste est alors
[3, 4, 7, 9]
Compléter le code Python ci-dessous qui implémente la fonction tri_bulles.
RĂ©ponse
Complétez le code ci-dessous
Solution
Exemple :
>>> tri_bulles([])
[]
>>> tri_bulles([7])
[7]
>>> tri_bulles([9, 3, 7, 2, 3, 1, 6])
[1, 2, 3, 3, 6, 7, 9]
>>> tri_bulles([9, 7, 4, 3])
[3, 4, 7, 9]