Sujet n°11
Sujet original
Pour télécharger l'énoncé original, cliquer ici.
Exercice n°1☘
On modélise la représentation binaire d'un entier non signé par un tableau
d'entiers dont les éléments sont 0
ou 1
. Par exemple, le tableau
[1, 0, 1, 0, 0, 1, 1]
représente l'écriture binaire de l'entier dont
l'écriture décimale est
2**6 + 2**4 + 2**1 + 2**0 = 83
À l'aide d'un parcours séquentiel, écrire la fonction convertir
répondant
aux spécifications suivantes :
1 2 3 4 5 6 7 |
|
Exemples
>>> convertir([1, 0, 1, 0, 0, 1, 1])
83
>>> convertir([1, 0, 0, 0, 0, 0, 1, 0])
130
Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Exercice n°2☘
La fonction tri_insertion
suivante prend en argument une liste tab
et trie
cette liste en utilisant la méthode du tri par insertion.
Compléter cette fonction pour qu'elle réponde à la spécification demandée.
Commentaires
Ici, le mot « liste » est à comprendre dans le sens « liste Python » (c'est-à-dire tableau) plutôt que dans le sens du type abstrait de données liste étudié en Terminale.
On rappelle le principe du tri par insertion : on considère les éléments à trier un par un,
le premier élément constituant, à lui tout seul, une liste triée de longueur 1. On range
ensuite le second élément pour constituer une liste triée de longueur 2, puis on range le
troisième élément pour avoir une liste triée de longueur 3 et ainsi de suite… A chaque
étape, le premier élément de la sous-liste non triée est placé dans la sous-liste des
éléments déjà triés de sorte que cette sous-liste demeure triée.
Le principe du tri par insertion est donc d'insérer à la n-ième itération, le n-ième élément
à la bonne place.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Commentaires sur le code original
-
Pour télécharger l'original du fichier à compléter, cliquer ici.
-
Dans cet exercice, il faut reprogrammer un algorithme usuel, à avoir travaillé de nombreuses fois !
Exemple
>>> liste = [9, 5, 8, 4, 0, 2, 7, 1, 10, 3, 6]
>>> tri_insertion(liste)
>>> liste
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|