Ceci est une ancienne révision du document !
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 1 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 172
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Warning: Undefined array key 2 in /home/goupillf/wiki.goupill.fr/lib/plugins/codeprettify/syntax/code.php on line 214
Table des matières
Comptage des éléments d'une liste
Exercice 4 du TP 1
On considère une séquence – list, tuple, str – L de longueur n = len(L) non nulle.
On voudrait préciser ses éléments et le nombre de représentants par élément. Par exemple pour L = [1, 0, 4, 2, 1, 0, 4, 1, 0], on a trois fois le 0, trois fois le 1, une fois le 2 et deux fois le 4.
Le mieux est d’utiliser un dictionnaire. Ici nous aurions le dictionnaire {0:3, 1:3, 2:1, 4:2}
Dans un dictionnaire, l'ordre des clés n'est pas garanti. On pourrait donc avoir à la place {2:1, 1:3, 0:3, 4:2}.
Question 1
Implémenter une fonction compte qui prend en argument une séquence et, avec un parcours séquentiel, renvoie le dictionnaire décrit ci-dessus. On testera la fonction bien sûr !
On pourra partir du cadre qui suit :
FONCTION compte
ENTRÉE: séquence (liste, chaîne...)
SORTIE: dictionnaire dont les clés sont les valeurs de la séquence
et les valeurs sont les effectifs
DÉBUT
initialiser un dictionnaire vide
POUR CHAQUE item de la séquence FAIRE
SI l'item est présent dans le dictionnaire ALORS
ajouter 1 à l'effectif de cet item
SINON
ajouter cet item comme clé du dictionnaire avec la valeur 1
FIN
FIN
renvoyer le dictionnaire
FIN
Question 2
Lorsque la séquence L est une séquence d’entiers naturels, au lieu d'un dictionnaire, on peut renvoyer un tableau T : Par exemple si l'entrée L contient 4 fois la valeur 12, alors on aura T[12] = 4.
- Soit p = max(L). Justifier que T doit avoir la longueur p + 1.
- Implémenter une fonction
compte2selon le schéma suivant. - Testez…
FONCTION compte2
ENTRÉE: séquence L (liste ou tupple) d'entiers naturels
SORTIE: tableau T contenant les effectifs des valeurs
soit p la valeur maximale de L (donc p entier naturel)
initialiser T comme tableau de longueur p + 1
et ne contenant que des 0
POUR CHAQUE item de L FAIRE
augmenter de 1 la valeur de T[item]
FIN
renvoyer T
FIN
