Professional Documents
Culture Documents
DS N°1
Les candidats sont informés que le soin apporté à la rédaction et à la présentation des copies
seront des éléments pris en compte dans la notation.
Remarques générales:
L'épreuve se compose de deux problèmes indépendants,
Le candidat doit mentionner le langage adopté (Algorithmique, C ou Python) à
l’entête de la première page de sa copie.
Les questions non traitées peuvent être admises pour aborder les questions ultérieures.
Problème I
La conversion d’un nombre décimal en octal est obtenu par la récupération des restes des
divisions successive du nombre par 8.
Exemple :
(289)10=( ? )8
289 8
Coefficient d’ordre 0 = 1 36 8
Coefficient d’ordre 1 = 4 4 8
Coefficient d’ordre 2= 4 0 8
Coefficient d’ordre 3= 0 0
Pr A.CHOUKRI Page 1
ENSA de Safi 2017/2018 3GI : Algorithmique avancée
Exemple :
>>> base10 ( [0,4,2,1] )
289
Rappel :
(an…..a1a0)8= (a0* 80 + a1* 81 +…..+ an* 8n)10
Problème II
On se propose de créer une application permettant d’analyser les notes des N étudiants de la 3GI en ce
devoir surveillé. Une telle analyse nécessite le calcul d’un ensemble d’indicateurs tel que la note
maximale, la note minimale, la moyenne de la classe, médiane …
Les notes sont enregistrées dans une liste nommée Note
Les étudiants sont identifiés par leurs numéros d’ordre.
Exemple : N=9
0 1 2 3 4 5 6 7 8
Note 12 3 14 0 14 14 20 0 6
Où Note[i] représente la note de l'étudiant i.
3) A présent, on cherche à attribuer à chaque étudiant son classement. Pour ce faire on aura
besoin d’une autre liste nommée occuNote de 21 cellules (0 à 20). La liste occuNote
contiendra l’occurrence (Nombre d’apparition) de chaque valeur (note) de la liste Note :
occuNote[i] : contiendra l’occurrence de la valeur i dans la liste Note
Exemple : A partir de l’exemple ci-dessus de la liste Note, on obtiendra la liste occuNote
suivante :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
occuNote 2 0 0 1 0 0 1 0 0 0 0 0 1 0 3 0 0 0 0 0 1
a. Ecrire la fonction calculOccNote (Note) : qui prend en paramètre la liste Note, crée ,
et retourne la liste occuNote correspondante.
Pr A.CHOUKRI Page 2
ENSA de Safi 2017/2018 3GI : Algorithmique avancée
b. On calcule ensuite à partir de la liste occuNote, une troisième liste qu’on nommera
Place. Chaque case i de Place contiendra le nombre de notes supérieures ou égales à i.
Exemple 2: A partir des listes Note, occuNote et Place ci-dessus, on obtiendra la liste
classFinal suivante :
0 1 2 3 4 5 6 7 8
classFinal 5 7 2 8 2 2 1 8 6
4) La médiane d’un ensemble de valeurs est la valeur m telle que le nombre de valeurs
supérieures ou égales à m équivaut le nombre de valeurs inférieures ou égales à m.
Pour déterminer la médiane d’une liste, il suffit d'ordonner ses valeurs et localiser la valeur
située au centre. (Pour un tableau de taille paire, la fonction retourne la moyenne des deux
valeurs situées au centre).
Ecrire la fonction Mediane(Note) : qui prend en paramètre la liste Note et qui retourne sa
médiane.
5) Ecrire une fonction récursive affEnv(Note) : qui affiche à l’envers les éléments de la liste
Note (du dernier au premier).
Pr A.CHOUKRI Page 3