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 :

Exécution programme prolog


Sujet :

Prolog

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut Exécution programme prolog
    Bonjour,

    J'ai deux questions
    La première est comment exécuter un programme Prolog et écrire le résultat de l’exécution dans un fichier txt (Pour précision j'utilise swiprolog).
    La deuxième est comment mettre a jour un prédicat (fait) statique.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    toto(5,pommes).
                  Reste(10, pommes).
                  mange(X,Y):-Reste(X,Y), toto(A,B), X>A alors le fait Reste(10, pommes) deviens Reste(X-A, Y).
    Merci !


  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
    Par défaut
    Bonjour
    Puisque tu utilises SWI-Prolog, je ne peux que te renvoyer à la doc : http://www.swi-prolog.org/pldoc/man?section=IO
    Ceci dit le prédicat tell/1 en conjonction avec told/0est très pratique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ?  tell('c:/a-travail/toto.txt'); listing(), told.
    recopiera dans le fichier toto.txt situé dans le répertoire c:/a-travail la liste de tous les prédicats de topLevel

    Pour la seconde question, on peut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    :-dynamic  reste/2.
     
    toto(5,pommes).
    reste(10, pommes).
     
     
    mange :-
    	retract(reste(X, Y)),
    	toto(A, Y),
    	NX is X - A,
    	assert(reste(NX,Y)).
    Tape ce code dans l'éditeur puis compile-le.
    Ensuite tape dans la console listing(reste).
    Puis tape mange.
    Enfin listing(reste).

    Tu obtiendras :
    % c:/users/utilisateur/documents/prolog/dvp/toto compiled 0.00 sec, 0 clauses
    10 ?- listing(reste).
    :- dynamic reste/2.

    reste(10, pommes).

    true.

    11 ?- mange.
    true.

    12 ?- listing(reste).
    :- dynamic reste/2.

    reste(5, pommes).

    true.
    Bon courage.
    "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
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut RE
    Merci pour votre réponse

    la ligne ? tell('c:/a-travail/toto.txt'); listing(), told. marche pas ça me renvoi une erreur . Dois-je la mettre dans mon fichier.pl ou dans swi.

    merci !

  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
    Par défaut
    Le répertoire "a-travail" existe-t-il sous c: ? Sinon, il faut le créer puis le programme fonctionnera.
    "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
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2016
    Messages : 3
    Par défaut Re
    Bonjour !

    Merci bcp pour votre réponse. J'en ai une autre si cela ne vous dérange pas ?
    Je voudrais retourner un résultat (plusieurs ligne)dans une liste exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    predicat("john",20,pomme).
    predicat2("toto",50,orange).
     
    function(Res):- predicat(X,Y,Z),
    Res est la liste des predicats [predicat1,predicat2]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ? function(Res).
    [predicat1,predicat2]
    Merci encore

Discussions similaires

  1. [Visual Prolog] Exécuter un programme Prolog
    Par sousan dans le forum Prolog
    Réponses: 7
    Dernier message: 01/03/2009, 20h44
  2. Exécuter plusieurs programmes Prolog automatiquement
    Par alexglvr dans le forum Prolog
    Réponses: 2
    Dernier message: 06/12/2008, 12h49
  3. Exécution programme en ligne de commande
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 25/10/2006, 12h00
  4. Réponses: 9
    Dernier message: 30/05/2006, 14h57
  5. "Philosophie" de la programmation Prolog
    Par Trap D dans le forum Prolog
    Réponses: 2
    Dernier message: 19/01/2006, 13h01

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