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 :

Créer une liste avec taille inconnue


Sujet :

Prolog

  1. #1
    C_C
    C_C est déconnecté
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Par défaut Créer une liste avec taille inconnue
    Salut,

    Je veux garder plusieurs éléments dans une liste mais je ne sais pas combien d'éléments seront. Il y a une façoc de faire ça en prolog?
    Plus précisémment ce que je vais faire c'est parcourir une liste d'éléments et ja veux guarder les éléments qui obéissent a una condition dans une autre liste.

    Quelqu'un sait m'aider?

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 943
    Par défaut
    Salut

    A mon avis il faut construire une nouvelle liste avec les éléments adéquats.

    Tu peux t'inspirer de cet exemple que j'ai déjà donné :
    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
    % oter(Arg1, Arg2, Arg3, Arg4)
    % Arg1 liste des états à traiter
    % Arg2 liste de référence contenant les états dejà rencontrés
    % Arg3 liste en construction contient les états corrects, au départ c'est []
    % Arg4 recupère la liste définitive
    % appel par oter(ATester, Vu, [], X).
     
    % quand la liste à tester est vide,
    % on unifie les deux derniers paramètres
    oter([], _, X, X).
     
    % On regarde le premier élément de la liste à tester
    % s'il est présent dans la liste Vu,
    %     on continue l'opération oter avec B et les autres arguments
    % sinon
    %    on mémorise A dans X en utilisant une liste intermédiaire X1
    %    et on continue avec B, Vu, X1 et Y
    oter([A|B], Vu, X, Y) :-
       member(A, Vu) -> oter(B, Vu, X, Y);(append([A], X, X1), oter(B, Vu, X1, Y)).
    Les listes se rallongent de manière habituelle avec des append.
    "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
    C_C
    C_C est déconnecté
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 139
    Par défaut
    Bonjour,

    Il me semble que ton code peut résoudre mon problème mais je n'arrive à l'adapter à la situation que je prétends.
    Imagine que la liste à tester est une liste de chiffres entre 1 et 9, et je veux garder tous les 4 dans une autre liste.
    Encore une question, La liste 'Vu' va garder tous les élements de la liste à tester? Et elle fait en sorte qu'il n'y ait pas d'éléments en double dans la liste finale?
    Cette dérnière situation n'est pas nécessaire parce-qu'il faut qu'il y ait des éléments répétés, vu que je veux tous les 4 dnas cette nouvelle liste.

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 943
    Par défaut
    Il suffit d'adapter le code, à la différence d'oter, ta fonction devra mémoriser dans le troisième argument les nombres rencontrés dans Vu.

    Si tu ne trouves pas, fais moi signe
    "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

Discussions similaires

  1. [Struts] Tester la taille d'une List avec un Tag Logic
    Par yolepro dans le forum Struts 1
    Réponses: 5
    Dernier message: 24/08/2007, 11h28
  2. [html] insertion d 1 image dans une cellule avec taille en %
    Par hijodelanoche dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 19/01/2006, 01h50
  3. ouvrir une fenêtre de taille inconnue au milieu de l'écran
    Par grinder59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/01/2006, 09h50
  4. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 09h27
  5. [MFC] creer une liste avec des check????
    Par ginounet dans le forum MFC
    Réponses: 4
    Dernier message: 16/06/2004, 12h47

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