Fonction de Tri en LISP

Résolu/Fermé
tksteph
Messages postés
204
Date d'inscription
samedi 20 mars 2010
Statut
Membre
Dernière intervention
3 janvier 2018
- 27 avril 2010 à 21:59
 6ril - 28 avril 2010 à 11:53
Salut à tous!
Svp j'aimerais que qu'elqu'un m'aide avec un programme (fonction non predefinie) en langage LISP qui permet de ranger 3 entiers qu'il reçoit en entree par ordre croissant

Mer6 à ts.

3 réponses

tksteph
Messages postés
204
Date d'inscription
samedi 20 mars 2010
Statut
Membre
Dernière intervention
3 janvier 2018
25
28 avril 2010 à 11:14
???
0
justoo76
Messages postés
186
Date d'inscription
mardi 13 avril 2010
Statut
Membre
Dernière intervention
23 mars 2016
13
28 avril 2010 à 11:28
Bonjour,

Tu peux déja utiliser cette fonction qui compare deux éléments entre eux :

(defun plusGrand(elem1 elem2)
(> elem1 elem2))
0
si t'es toujours sûr qu'il y aura 3 valeurs en entrée alors tu peux utiliser les fonction min(val1, val2, val3) et max(val1, val2, val3)

puis avec une formule comme celle-ci
(<= 0 x 9) ;true if x is between 0 and 9, inclusive
(< 0.0 x 1.0) ;true if x is between 0.0 and 1.0, exclusive

en remplaçant par min et max pour les bornes


Si tu peux avoir un nombre de valeur fluctuant alors tu insères le 1er nombre dans une liste, tu compares le 2ème nombre avec le 1er: si > alors tu l'ajoutes à la fin (simple fonction append()), si < alors tu l'insères à l'index de la 1ère valeur et tu répète les étapes de comparaison et d'insertion jusqu'à ce que tu ais fini
Tu obtiens ainsi une une liste dont le nombre sont ordonnés
0