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 :

afficheSousListes(Liste, indice Minimum, Indice Maximum)


Sujet :

Prolog

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut afficheSousListes(Liste, indice Minimum, Indice Maximum)
    bonjour à tous,
    je viens vers vous car j'ai besoin d'aide.

    voilà ma demande :

    Ecrire le prédicat Prolog nommé afficheSousListes d’arité 3 (Liste, indice Minimum, Indice Maximum) qui affiche tous les éléments d’une liste sous la forme d’une matrice 3*3

    Exemple : afficheSousListes([1,1,1,1,1,1,1,1,1],1,3)  111
    111
    111


    auriez-vous une idée ?

    Merci bcp par avance

  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
    Quels sont les essais que vous avez faits ?
    Où est-ce que ça coince ?
    A mon avis le résultat recherché est la liste [[1,1,1],[1,1,1],[1,1,1]].
    Avez- vous cherché à utiliser 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
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    voilà ce que je fais pour le moment et le : sauf que j'utilise pas les arités

    afficheMatrice([]).
    afficheMatrice([H1,H2,H3|L]) :- format('~w ~w ~w~n',[H1,H2,H3]),afficheMatrice(L).

    le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ?- afficheMatrice([a,b,c,d,e,f,g,h,k]).
    a b c
    d e f
    g h k
    true.
    Mon soucis c'est que dans la demande initiale, ils veulent qu'on utilises les indexs pour faire les sous listes :

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ?- afficheMatrice([1,1,1,1,1,1,1,1,1],1,3) .  %dont 1 c'est l'indice minimum et 3 est lindice maximum 
     111      
     111       
     111

  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
    Il faut toujours séparer l'obtention du résultat et son affichage style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    afficheMatrice(L) :-
        obtention_matrice(L, M),
        affichage_matrice(M).
    Pour ce qui est de afficheSousListes d’arité 3 (Liste, indice Minimum, Indice Maximum) je ne comprends pas très bien ce que veut dire "Indice Minimum, Indice Maximum".
    D'après l'exemple c'est un simple "split" de la liste en sous liste de longeur 3.
    on peut faire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    afficheSousListes([], _Longueur, []) :- !.
    afficheSousListes(Liste, Longueur, [L | Out]) :-
        length(L, Longueur),
        append(L, X, Liste),
        afficheSousListes(X, Longueur, Out).
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ?- afficheSousListes([a,b,c,d,e,f,g,h,i],3, L).
    L = [[a,b,c],[d,e,f],[g,h,i]].
    "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
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut AfficheSousListes
    Je vous remercie pour votre réactivité,
    Je pense que ça répond à mon besoin, je vais juste adapter l'affichage pour que ça fasse comme ce qu'il a été demandé.

    Sinon, y a pas un prédicat qui calcule et affiche une matrice/ carré à partir d'une liste ??
    Pour notre exemple, c'est un carré /3, on aurait pu tomber sur une liste de 16 éléments qui nous donnera un carré/4

    Merci par avance

  6. #6
    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
    Il suffit de calculer la racine carrée de la longueur de la liste, et ça roule.
    "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

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut afficheSousListes
    Merci,

    dernière question, le but final du TP est le suivant :

    "Proposez une résolution du prédicat carreMagique pour n’importe quelle matrice carrée, avec génération de la somme des lignes, colonnes et diagonales".

    j'ai trouvé une de vos solution qui traite le Carré magique d'ordre 4 mais la solution reste statique, je ne vois pas comment je peux généraliser cette solution pour que cette dernière résout tous les carrée magique juste en donnant la somme de chaque Ligne.

    Une piste ?

    Cordialement

  8. #8
    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
    Le programme dont vous parlez peut donner les carrés magiques de n'importe quel ordre. Ça prend simplement du 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

  9. #9
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut AfficheSousListes
    Je ne sais pas si on parle du même programme, Dans Le programme que j'ai récupéré, on a Le prédicat carre(vars):- Vars = [A1...].
    Dont vars est une liste de 16 éléments c'est tout. Donc cela traite que Le carré d'ordre 4

    Si vous avez une piste, suis preneur

  10. #10
    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
    Eh bien cherchez dans le forum Prolog, le programme que vous recherchez s'y trouve !
    "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

  11. #11
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut afficheSousListes
    Merci pour votre retour,
    j'ai parcouru les 21 page de forum Prolog et il m'était impossible de trouver ce programme, si vous avez le lien de la discussion sous le coude, je serais vraiment reconnaissant.

    Merci par avance

  12. #12
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut afficheSousListes
    Re
    je l'ai trouvé, ça me donne des pistes pour répondre à mon besoin , en tout cas, je vous remercie pour tout.

    à bientôt

Discussions similaires

  1. [Python 3.X] parcourir liste avec 2 indices
    Par sparrow88 dans le forum Général Python
    Réponses: 13
    Dernier message: 14/09/2014, 06h52
  2. Réponses: 4
    Dernier message: 28/05/2013, 12h49
  3. Réponses: 1
    Dernier message: 25/05/2013, 21h40
  4. minimum et maximum d'une list ou d'un tableau
    Par ojhoj dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/04/2011, 19h36
  5. création d'une liste d'actions indicée
    Par potili2 dans le forum Langage
    Réponses: 10
    Dernier message: 29/09/2008, 21h14

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