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 :

prédicat sur élément d'une famille


Sujet :

Prolog

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut prédicat sur élément d'une famille
    Bonjour,

    Je ne comprend pas très bien l'intérêt des familles car j'ai l'impression que de toute manière il faut déclarer les variables...

    Je m'explique, admettons que je cherche à obtenir l'ensemble des points à coordonnées entières : (X,Y) telles que
    X < MaxL,
    Y < MaxH

    si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    points(X,Y,MaxL,MaxH ):-
    	domain([X],0,MaxL),
    	domain([Y],0,MaxH ),
    	labeling([leftmost,up],[X,Y]).
    J'obtiens bien ce que je veux.
    Mais ce qui m' embête un peu c'est que je suis alors obligé de manipuler un X et un Y dans toutes mes méthodes...
    J'aurais voulu déclarer une famille point(X,Y), implémenter des accesseurs, et générer des points qui auront comme coordonnées le X et le Y.

    Ce n'est pas flagrant avec les points, mais quand je me retrouve avec des méthodes à 15 paramètres au lieu de 3 je me dis que je dois pas faire tout comme il faut ...

    Vous pouvez m'expliquez comment il faut faire ?

    Merci beaucoup.

  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
    Pourrais-tu préciser si tu utilises SWI-Prolog ou Sictus Prolog. Je connais un peu la prog par contraintes avec SWI-Prolog mais je ne connais pas du tout Sictus Prolog, même si je subodore que c'est un peu la même chose.

    Je te donne une possibilité en SWI-Prolog, mais je ne suis pas sûr d'avoir bien compris ce que tu voulais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    :- use_module(library(clpfd)).
     
    coord_X(point(X, _), X).
    coord_Y(point(_, Y), Y).
     
    points(P,MaxL,MaxH ):-
    	coord_X(P, X),
    	coord_Y(P, Y),
    	X in 0..MaxL,
    	Y in 0..MaxH,
    	labeling([leftmost,up],[X,Y]).
    sortie :
    1 ?- points(P, 3,2).
    P = point(0, 0) ;
    P = point(0, 1) ;
    P = point(0, 2) ;
    P = point(1, 0) ;
    P = point(1, 1) ;
    P = point(1, 2) ;
    P = point(2, 0) ;
    P = point(2, 1) ;
    P = point(2, 2) ;
    P = point(3, 0) ;
    P = point(3, 1) ;
    P = point(3, 2).

    2 ?-
    "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
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    j'utilise Sicstus prolog, mais cela marche très bien.

    C'est exactement ce que je voulais, utiliser les familles pour éviter d'avoir à désigner tous les attributs d'une famille.

    C'est vraiment chouette, merci beaucoup.

    Encore une fois, merci.

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

Discussions similaires

  1. [POO] Simuler envoi de click sur élément dans une page HTML
    Par opsi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/09/2008, 13h24
  2. Focus sur un élément d'une combobox
    Par zoidy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/06/2006, 18h17
  3. Clic sur élément d'une requete affiché
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/02/2006, 00h38
  4. pointer sur un autre élément d'une liste en codage
    Par rahan_dave dans le forum Access
    Réponses: 3
    Dernier message: 03/02/2006, 13h25
  5. Réponses: 2
    Dernier message: 11/01/2005, 14h10

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