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