Ep 45
ⶠTélécharger le sujet en pdf.
EXERCICE 1âïž
On veut trier par ordre croissant les notes dâune Ă©valuation qui sont des nombres entiers compris entre 0 et 10 (inclus).
Ces notes sont contenues dans une liste notes_eval
.
Ăcrire une fonction rangement_valeurs
prenant en paramĂštre la liste notes_eval
et renvoyant une liste de longueur 11 telle que la valeur de cette liste Ă chaque rang est
Ă©gale au nombre de notes valant ce rang. Ainsi le terme de rang 0 indique le nombre de note 0, le terme de rang 1 le nombre de note 1, etc.
Ăcrire ensuite une fonction notes_triees
prenant en paramĂštre la liste des effectifs des notes et renvoyant une liste contenant la liste, triĂ©e dans lâordre croissant, des notes
des Ă©lĂšves.
Exemple :
>>> notes_eval = [2, 0, 5, 9, 6, 9, 10, 5, 7, 9, 9, 5, 0, 9, 6, 5, 4]
>>> effectifs_notes = rangement_valeurs(notes_eval)
>>> effectifs_notes
[2, 0, 1, 0, 1, 4, 2, 1, 0, 5, 1]
>>> notes_triees(effectifs_notes)
[0, 0, 2, 4, 5, 5, 5, 5, 6, 6, 7, 9, 9, 9, 9, 9, 10]
RĂ©ponse
Complétez le code ci-dessous
Solution
EXERCICE 2âïž
Lâobjectif de cet exercice est dâĂ©crire deux fonctions rĂ©cursives dec_to_bin
et bin_to_dec
assurant respectivement la conversion de lâĂ©criture dĂ©cimale dâun nombre
entier vers son Ă©criture en binaire et, rĂ©ciproquement, la conversion de lâĂ©criture en binaire dâun nombre vers son Ă©criture dĂ©cimale.
Dans cet exercice, on sâinterdit lâusage des fonctions Python bin
et int
.
On rappelle sur lâexemple ci-dessous une façon dâobtenir lâĂ©criture en binaire du nombre 25 :
\(25 = 1 + 2 \times 12\)
\(\phantom{25} = 1 + 2 \times 12\)
\(\phantom{25} = 1 + 2 (0 + 2 \times 6)\)
\(\phantom{25} = 1 + 2 (0 + 2 (0 + 2 \times 3))\)
\(\phantom{25} = 1 + 2 (0 + 2 (0 + 2 (1 + 2 \times 1)))\)
\(\phantom{25} = 1 \times 2^0 + 0 \times 2^1 + 0 \times 2^2 + 1 \times 2^3 + 1 \times 2^4\)
L'Ă©criture binaire de 25 est donc 11001
.
0n rappelle Ă©galement que :
a // 2
renvoie le quotient de la division euclidienne dea
par 2.a % 2
renvoie le reste dans la division euclidienne dea
par 2.
On indique enfin quâen Python si mot = "informatique"
alors :
mot[-1]
renvoie'e'
, câest-Ă -dire le dernier caractĂšre de la chaĂźne de caractĂšresmot
.mot[:-1]
renvoie'informatiqu'
, câest-Ă -dire lâensemble de la chaĂźne de caractĂšresmot
privée de son dernier caractÚre.
Compléter, puis tester, les codes de deux fonctions ci-dessous.
On précise que la fonction récursive dec_to_bin
prend en paramĂštre un nombre entier et renvoie une chaĂźne de caractĂšres contenant lâĂ©criture en binaire du nombre passĂ© en paramĂštre.
RĂ©ponse
Complétez le code ci-dessous
Solution
Exemple :
>>> dec_to_bin(25)
'11001'
>>> bin_to_dec('101010')
42