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 :

Terminaison du programme et erreur de dépacement de pile locale.


Sujet :

Prolog

  1. #1
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut Terminaison du programme et erreur de dépacement de pile locale.
    J'espère obtenir l'indulgeance pour mes début avec Prolog.

    Voici mon code qui ne termine pas ou déclare une erreur de pile locale.

    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
     
    no :- write('no, ').
    yes :- write('yes.').
    antinomie(no, yes).
    antinomie(négative, affirmative).
    antinomie(négative, yes).
    antinomie(affirmative, no).
    synonyme(no, negative).
    synonyme(yes, affirmative).
     
    antinomie(Left, Right) :- (antinomie(Left, Right); antinomie(Right, Left)).
    synonyme(Left, Right) :- (synonyme(Left, Right); synonyme(Right, Left)).
     
    no_analyze(X) :- synonyme(X, Y), antinomie(Y, A), synonyme(A, S),
                     write(S), nl.
    yes_analyze(X) :- antinomie(X, Y), synonyme(Y, S), antinomie(S, A),
                      write(A), nl.
     
    no(X) :- no, no_analyze(X).
    yes(X) :- yes_analyze(X), yes.

    yes(no). yes(X), no(yes), ne termine pas ; Et no(X) déclare : out of local stack.

    Je pense avoir écrit un truc sensé, ou réfléchie en tout cas mais pas conforme avec le fonctionnement de Prolog.

    Si vous pouviez m'aider, merci.
    Logique sans matière est matière de logique.

  2. #2
    Membre du Club
    Homme Profil pro
    codeur
    Inscrit en
    Mars 2018
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : codeur

    Informations forums :
    Inscription : Mars 2018
    Messages : 158
    Points : 64
    Points
    64
    Par défaut Oups, correction du code résolu.
    Oups, j'ai peut-être pas suffisemment cherché avant de vous poster mon message.

    Voici mon code corrigé et complet pour le moment.

    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
    no :- write('no, ').
    yes :- write('yes.').
     
    antinomie(no, yes).
    antinomie(negative, affirmative).
     
    synonyme(no, negative).
    synonyme(yes, affirmative).
     
    search_antinomie(Left, Right) :- (antinomie(Left, Right) -> !
                               ; antinomie(Right, Left)).
     
    search_synonyme(Left, Right) :- (synonyme(Left, Right) -> !
                              ; synonyme(Right, Left)).
     
    no_analyze(X, S) :- search_synonyme(X, Y),
                        search_antinomie(Y, A),
                        search_synonyme(A, S).
     
    yes_analyze(X, A) :- search_antinomie(X, Y),
                         search_synonyme(Y, S),
                         search_antinomie(S, A).
     
    no(X, S) :- no, no_analyze(X, S).
    yes(X, A) :- yes_analyze(X, A), yes.
    Merci pour votre patience.
    Logique sans matière est matière de logique.

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

Discussions similaires

  1. [TP] Programme calculatrice : erreur de syntaxe
    Par goldeneagle1 dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/05/2007, 21h03
  2. Réponses: 5
    Dernier message: 15/01/2007, 21h15
  3. debug vc++ ->ok, programme seul ->erreur
    Par jerome86600 dans le forum VC++ .NET
    Réponses: 13
    Dernier message: 13/07/2006, 15h46
  4. interruption du programme sur erreur
    Par cdelamarre dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/11/2005, 15h47
  5. Terminaison de programmes
    Par Jm64 dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/12/2004, 17h49

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