|
Programmation
du TRI de
LISTES de NOMBRES avec Python et avec Maple Quelques indications pour commencer
à programmer les tris de listes de
nombres. Comparaison entre les logiciels Python et Maple. |
|
||
Éditeur Mémoriser (CTRL S) puis Lancer l'exécution
(F5) Interpréteur |
La liste est une suite de nombres (ou autres
objets, comme du texte) placée entre crochets droits. L'instruction sort
trie les nombres par ordre croissant (sort veut dire trier en anglais). L'instruction L.sort()
trie la liste L et place le résultat dans L. L'affectation est automatique. Notez que la forme de l'instruction n'est pas: L: = sort(L) comme avec Maple. Ne pas oublier de spécifier l'impression (print) pour obtenir un affichage dans l'interpréteur. En Python, il faut mémoriser (fichier en .py) le programme rédigé dans l'éditeur, puis
lancer son exécution (Run ou F5): le
résultat apparait dans une fenêtre spéciale (interpréteur). |
|
|
L'introduction de l'instruction reverse permet un tri dans l'ordre décroissant. |
|
|
Tri de la fusion de plusieurs listes. Les trois listes sont concaténées puis la nouvelle
liste est triée. |
|
|
Tri de mots selon leur longueur. Introduction de key =
len (clé = longueur). Pour les nombres, utilisez simplement sort. |
|
Tri d'une liste selon la taille puis dans l'ordre
croissant du premier élément. |
|
||
|
Tri naturel selon la valeur du premier élément. Que les suites internes soient des tuples ou des listes. Une liste est
une suite modifiable d'éléments (crochets). Un tuple est
une suite fixe d'éléments (parenthèses). |
|
|
Programme de tri d'une liste en prenant le
deuxième élément comme critère. On définit la fonction Rang
qui isole le deuxième élément (en Python on compte à partir de 0). Dans l'instruction sort,
on précise que la clé du tri est le deuxième élément des sous-suites de
nombres (tuples ou listes). |
|
|
||
|
Une liste est une suite d'éléments. La suite est
entourée de crochets droits. L'instruction sort
(qui veut dire tri en anglais) ordonne les
nombres par ordre croissant. En Maple, on passe à la ligne avec Shift-Entrée et on exécute directement en
appuyant sur Entrée. Le résultat est sur
la même page. |
|
|
Cette
instruction ordonne les nombres puis les mots avec capitales et les mots en
minuscules. |
|
|
Maple dispose d'une autre race de liste appelée
ensemble (set en anglais). Elle est
entourée d'accolades. Elle est automatiquement triée dans l'ordre
croissant et, les doublons sont éliminés. |
|
|
Comment transformer une liste
en un ensemble? L'instruction op(L)
élimine les crochets et la suite obtenue est placée entre accolades. |
|
|
Pratique pour tester si tous les nombres d'une
liste sont différents. L'instruction nops
compte les éléments d'une liste ou d'un ensemble. Exemple ici: il y a cinq
éléments dans la liste et cinq éléments dans l'ensemble: tous les éléments de
la liste sont donc différents. |
|
|
Utilisation des instructions Reverse pour trier dans l'ordre décroissant. Et, de Rotate
pour exécuter une permutation circulaire de k positions. Le module (ou package) ListTools
(outils appliqués aux listes) comporte de nombreuses facilités de
manipulation des listes comme Reverse ou Rotate. |
|
Comment trier la réunion de deux listes: tri de
la simple concaténation des deux listes. |
|
||
|
L'instruction sort
trie les nombres puis les listes imbriquées selon la quantité d'éléments et
pour chaque quantité par ordre croissant du premier élément. Pas de tri dans les listes internes. Par exemple: la grande sous-liste commençant par
9 est la dernière car comportant cinq éléments, plus que la précédente qui
n'a que deux éléments. Mais, pas d'action interne à ces cinq éléments. |
|
|
Ici, la liste imbriquée est définie par ses
sous-listes (L[ i ]). La liste initiale est reconstituée avec
l'instruction seq appliquée au 5
sous-listes (i = 1..5). On demande le tri (sort)
de cette liste reconstituée. |
|
|
Une procédure qui permet de trier des listes
imbriquées selon le premier élément,
quelle que soit la longueur de la sous-liste. Dans l'en-tête de la procédure, les quatre points indique que L et M sont des
listes. La procédure ne s'exécute que si c'est le cas. |
|
Un moyen de trier une liste imbriquée, avec
sous-listes de mêmes longueurs, par ordre croissant du deuxième élément. |
|
Une procédure qui échange des éléments désignés
dans la liste. Le premier exemple avec {1, 2, 3, 4} retourne les
quatre premiers éléments sans toucher les autres. Le second exemple, les éléments en position 2, 4,
6, 8 de la liste qui vient d'être triée sont croisés. Source de ce
code: Rosettacode |
|
|||
Par calcul et instruction compacte |
Comment former un nombre avec les k derniers
chiffres d'un nombre inversés ? Chinv extrait les k derniers
chiffres et Ch reforme le nombre avec ces chiffres. |
||
|
Notez que pour disposer
des k derniers chiffres dans l'ordre, il suffit que calculer modulo 10k. |
||
|
Notez aussi que disposant de
l'instruction convert, on a plus simple
que ci-dessus. Le programme présenté ci-dessus est nécessaire sans
instruction de transformation directe du nombre en chiffres. |
||
Comme
pour la majorité des langages de programmation, Python et Maple possèdent des
facilités de tri. L'usage le plus courant se contente de l'instruction sort. Il existe de nombreux attributs à cette instruction qui permettent de
spécifier des tris particuliers. À découvrir à l'usage. |
Merci à Jean-Jacques Charre pour l'idée de
cette page
Suite |
Programmation
– Index |
Voir |
|