IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Prolog Discussion :

Petits problèmes avec les listes


Sujet :

Prolog

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Petits problèmes avec les listes
    Bonjour,

    Je débute en prolog et comme je l'apprend par mes propres moyens, je ne comprend pas tout, et je voudrais résoudre un petit prob avec une sorte d'agenda.

    Je m'explique :

    1)J'ai tout d'abord une liste contenant des catégories différentes
    ex: mes_cat([famille,amis,collegues]).

    2)Ensuite une autre pour chaque categorie avec ce qu'elle contient
    ex: desc_cat(famille,[jean,marc,tonton,papa]).
    desc_cat(amis,[pierre,david,michel]).
    desc_cat(collegues,[francois,olivier,suzanne]).

    3)Puis une dernière série contenant les infos de chaque contact
    ex: infos_contact(jean,[06xxxxxx,rue prolog,45000,StLisp]).
    idem pr les autres contact

    ce que je voudrais faire concrètement c pouvoir ALEATOIREMENT selectionné un type de contact dans la liste 1) puis ensuite aléatoirement également choisir un contact dans la liste 2) en fonction du type et ensuite pouvoir intérroger Prolog pour savoir si le numero 06xxxxxx est dans la derniere liste(évidement en fonction du type de contact et du contact sélectionné aléatoirement par prolog ).

    ceci n'est pas tt a fait mon problème mais pour faire court je l'ai résumé ainsi avec un exemple concret. Si vous pouviez m'aider en me donnant la solution a ce petit problème je pense etre en mesure de l'appliquer a mon problème initial
    (petit agenda "intelligent").

    PS: J'utilise SWI-prolog comme vous le conseillez et je n'ai peut etre pas définit mes listes comme il faut ..... ?!

    Merci d'avance a tous.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Pour choisir aléatoirement un nombre en SWI-Prolog tu as random(+Int) qui te fournit un entier entre 0 compris et le nombre donné à random non compris.
    Dont tu va chercher la longueur de la liste avec length(Liste, Len).
    Ensuite tu prends une valeur avec N = random(Len).
    Tu prends enfin le Nième élément avec nth0(N, Liste, Elem)

    Pour le reste, je te laisse chercher car tout de suite, je n'ai pas trop le temps.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Merci
    Merci pour ta réponse, cela m'aide a comprendre certaines choses mais pourrais tu stp préciser un peu plus ( j'ai un peu de mal dsl ).

    merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Voilà ce que tu peux faire pour le début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    % la base de données
    mes_cat([famille,amis,collegues]).
     
    desc_cat(famille,[jean,marc,tonton,papa]).
    desc_cat(amis,[pierre,david,michel]).
    desc_cat(collegues,[francois,olivier,suzanne]).
     
    infos_contact(jean,[x06xxxxxx,rue_prolog,45000,stLisp]).
     
     
    selection(Lst, Elem) :-
    	length(Lst, Nb),
    	I is random(Nb),
    	nth0(I, Lst, Elem).
     
     
    go :-
    	% selection de la catégorie
    	mes_cat(X),
    	selection(X, E),
    	write(E), nl,
     
    	% selection du contact
    	desc_cat(E, Y),
    	selection(Y, E1),
    	write(E1), nl.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Merci
    Merci bcp je viens de comprendre. c super cool de ta part .
    Je reviendrai faire un tour si j'ai d'autres soucis mais je pense pouvoir avancer pas mal maintenant. merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. petit problème avec les listes chainées
    Par djinpark1 dans le forum Débuter
    Réponses: 4
    Dernier message: 30/06/2009, 17h11
  2. Petit problèmes avec display list et transformations
    Par Baptiste Wicht dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/02/2006, 17h00
  3. Petit problème avec les accents circonflexes...
    Par Harvester dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 29/11/2005, 18h44
  4. petit soucis avec les listes
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/09/2005, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo