Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Prolog] : ajouter un nombre à la bonne place dans une liste de nb

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Prolog] : ajouter un nombre à la bonne place dans une liste de nb

n°2280642
nanataw
Posté le 02-05-2016 à 23:21:24  profilanswer
 

Bonjour tout le monde,
 
J'ai besoin de placer un nombre dans une liste où les nombres seraient dans l'ordre croissant.
 
Exemple :
 
?- ajoutenombre(5,[3,7,8,23],X).  
me renverrait :
X = [3,5,7,8,23].
 
J'ai essayé ça... mais ça marche pas :
 
ajout(X,L,[X|L]).    
ajout(X,[Y|L1],[Y|L2]) :- ajout(X,L1,L2).
 
ajoutenombre(X, [T|[]], [T|X]).
ajoutenombre(X, [T|Q], [T2|Q2]) :- T>X, ajout(X, Q, [X|Q]).
ajoutenombre(X, [T|Q], [T2|Q2]) :- T<X, ajoutenombre(X, Q, Q2).

mood
Publicité
Posté le 02-05-2016 à 23:21:24  profilanswer
 

n°2280837
Trap D
Posté le 05-05-2016 à 09:29:23  profilanswer
 

Il ne faut pas se compliquer la vie :

Code :
  1. % Si le nombre est plus grand que le premier de la liste
  2. % on passe le premier element de la liste et on regarde ce qui se passe après
  3. % on ajoutera H en tête de liste du résultat
  4. ajoute(X, [H|T], [H | Out]) :-
  5.     X >= H, !,
  6.     ajoute(X, T, Out).
  7. % ici on est sur à cause du cut (!) de la clause précédente
  8. % que X est plus petit que H
  9. % donc on met X en tête de liste et c'est fini !
  10. ajoute(X, [H|T], [X, H | T]).

Message cité 1 fois
Message édité par Trap D le 05-05-2016 à 09:30:38
n°2280961
nanataw
Posté le 08-05-2016 à 20:33:31  profilanswer
 

Trap D a écrit :

Il ne faut pas se compliquer la vie :

Code :
  1. % Si le nombre est plus grand que le premier de la liste
  2. % on passe le premier element de la liste et on regarde ce qui se passe après
  3. % on ajoutera H en tête de liste du résultat
  4. ajoute(X, [H|T], [H | Out]) :-
  5.     X >= H, !,
  6.     ajoute(X, T, Out).
  7. % ici on est sur à cause du cut (!) de la clause précédente
  8. % que X est plus petit que H
  9. % donc on met X en tête de liste et c'est fini !
  10. ajoute(X, [H|T], [X, H | T]).



 
Merci... je découvre juste le cut ! et c'est niquel ! Merci vraiment pour le coup de pouce !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Prolog] : ajouter un nombre à la bonne place dans une liste de nb

 

Sujets relatifs
Créer une liste simplement chainéeCréer une liste simplement chainée
Compter le nombre de valeurs différentesNombre de session simultanées
récupérer donnée selectionnée liste déroulanteSignature Windows mail : ajouter adresse internet + lien
problème liste déroulante avec BDDGnat : liste & nom des packages
Compter le nombre de lignes d'un fichier .Quels Langages à apprendre pour crée une place de marché type Ebay
Plus de sujets relatifs à : [Prolog] : ajouter un nombre à la bonne place dans une liste de nb


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR