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 :

Lier un fichier prolog à une boite de dialogue


Sujet :

Prolog

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut Lier un fichier prolog à une boite de dialogue
    Bonjour,
    Dans le cadre de mon DUT j'ai un projet en prolog à réaliser. Il s'agit d'un analyseur syntaxique qui renvoie si la requête est correcte . Notre fichier .pl marche correctement : par exemple ,
    ?- requete(robot,tournes,'à droite','s\'il te plait').
    True.
    La requete est correcte.

    Ce programme fonctionne comme un automate c'est à dire que pour qu'une requête soit correcte il faut que chacun des mots ajouté à la liste L soit reconnu par chacun des états. ainsi par exemple dans l'état initial appelé 'requete', ce dernier peut reconnaître les mots 'tournes', 'avances'...
    pour que la phrase entière soit reconnue, il faut que le dernier mot atteigne l'état final n°9, sinon ce sera false.
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    requete([tournes|L]):- etat9(L).
    requete([avances|L]):- etat9(L).
    requete([stop|L]):- etat9(L).
     
    requete([avancer|L]):- etat2(L).
    requete([avances|L]):- etat2(L).
    requete([tourner|L]):- etat2(L).
    requete([tournes|L]):- etat2(L).
    requete([pivoter|L]):- etat2(L).
    requete([pivotes|L]):- etat2(L).
    requete([aller|L]):- etat2(L).
    requete([va|L]):- etat2(L).
     
    requete([machine|L]):- etat3(L).
    requete([robot|L]):- etat3(L).
     
    requete([je|L]):- etat4(L).
    requete([nous|L]):- etat4(L).
     
    etat2(['à gauche'|L]) :- etat9(L).
    etat2(['à droite'|L]) :- etat9(L).
    etat2([devant|L]) :- etat9(L).
     
    etat2(['à gauche'|L]) :- etat8(L).
    etat2(['à droite'|L]) :- etat8(L).
    etat2([devant|L]) :- etat8(L).
     
    etat3([avancer|L]) :- etat2(L).
    etat3([avances|L]) :- etat2(L).
    etat3([tourner|L]) :- etat2(L).
    etat3([tournes|L]) :- etat2(L).
    etat3([pivoter|L]) :- etat2(L).
    etat3([pivotes|L]) :- etat2(L).
    etat3([aller|L]) :- etat2(L).
    etat3([va|L]) :- etat2(L).
     
    etat4([te|L]) :- etat5(L).
     
    etat5([demande|L]) :- etat6(L).
    etat5([ordonne|L]) :- etat6(L).
     
    etat6([de|L]) :- etat7(L).
     
    etat7([tourner|L]) :- etat2(L).
    etat7([avancer|L]) :- etat2(L).
    etat7([pivoter|L]) :- etat2(L).
     
    etat8(['s\'il te plait'|L]) :- etat9(L).
     
    etat9([]):- write('operation réalisée avec succès').
    Afin de finaliser ce projet, il nous est demandé de réaliser une boite de dialogue toute simple : il y aurait juste un champs de texte ou l'on taperait notre requête et un bouton "tester" qui teste à l'aide de notre fichier .pl si la requête est correcte ou non.

    Nous avons entendu parler de l'interface XPCE cependant bien trop compliquée au premier abord.

    Merci de votre aide,
    Cordialement,

  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
    Il me semble qu'il est assez facile d'adapter les codes se trouvant sur cette page à votre problème.
    "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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    Après avoir relu votre cours 2 fois chacun, nous ne voyons toujours pas comment trouver solution notre problème.. Si vous pouviez nous en dire un peu plus nous vous serions extrêmement reconnaissants !
    Cordialement,

  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
    Qu'avez vous essayé ?
    Postez votre code et iondiquez où ça coince.
    "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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    En réalité je n'ai rien essayé car je n'ai pas compris quel type de code pourrais correspondre à notre problème. J'ai mis tout mon code dans mon premier message .
    Merci de votre aide encore,
    Cordialement,

  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
    C'est bien ce que je pensais...
    La boite de dialogue de calcul présentée dans ce tutoriel est exactement ce qu'il vous faut.
    Simplement votre code ecrit dans le premier message peut se trouver directement dans dans le fichier contenant la boite de dialogue XPCE.
    Lisez attentivement le tutoriel, tout est dedans. Si vous avez des problèmes, ce qui est normal, postez alors le code qui vous ennuie.
    "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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut problème avec prolog
    Alors pour résumer mon problème actuel, je tiens à dire que je comprend le principe général de XCPE et du créateur de boites de dialogues, là-dessus pas de soucis.

    j'ai bien suivi le tutoriel mais je n'arrive pas à appliquer le principe des liaisons entre les différents éléments constituants le Behaviour de ma boite de dialogue.

    serait-il plus simple que je fasse un programme constitué essentiellement de send(@xxxx, ...)
    new(D, window('Ma première fenêtre'))
    ...

    du coup comment pourrait-je lier ces commandes à mon programme de requetes ? je ne sais pas quand et ou rentrer les paramètres de mes requetes.

    et dans ce cas là quelle serait la commande du prompt, nécessaire pour créer un fichier exécutable de notre programme ?




    merci.

  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
    Il ne faut pas s'embêter dans un premier temps avec la boîte de dialogue du behaviour. Il faut se concentrer sur le code.
    Lorsqu'on appuie sur le bouton on appel un prédicat Prolog qui va exécuter tout simplement la requête requete(X). ou X est la sélection du champ de saisie, si ça réussit on ecrit OK dans le champ réponse et KO sinon.
    "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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    voilà ou je suis rendu pour l'instant. actuellement le code ci-dessous ne permet que de renvoyer le contenu du champ du ExprItem.

    or je voudrais concrêtement que le bas du code (à partir de requete([tournes|L]) :- etat11(L).) puisse faire partie du programme en analysant le contenu du champ du ExprItem afin qu'il puisse ensuite renvoyer dans le label de résultat vrai ou faux en fonction de la véracité du contenu du champ entré.

    ¤ le vrai correspondrait à une phrase entrée qui atteindrait un état final de l'automate soit ici l'état 11 (etat11([]).)

    ¤ le faux correspondrait à une phrase non reconnue par l'automate c'est-à-dire dont l'ordre des mots ne suivrait pas la logique de l'automate ou ne reconnaissant pas un des mots de la phrase entrée.

    voici un shéma de cet automate pour mieux comprendre son sens de fonctionnement : ici

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    diag :-
    	new(D, dialog('Analyseur Syntaxique')),
    	send(D, append,
    	     new(ExprItem, text_item('Saisissez votre requête '))),
    	send(D, append, new(Resultat, label(''))),
    	send(D, append,
    	     button(envoyer, message(@prolog, requetes, ExprItem?selection, Resultat))),
    	send(D, append,
    	     button(quitter, message(D, destroy))),
    	send(D, open).
    
    
    requetes(ExprItem,Resultat) :-
    	send(Resultat, selection, ExprItem). %ne renvoie normalement que le contenue du champ d'entrée
    
    
    requete([tournes|L]):- etat11(L). %si présence en 1er mot de la phrase du mot tournes, alors l'automate passe à l'état 11 soit l'état terminal. l'automate va donc reconnaitre la phrase constituée du seul mot tournes.
    requete([avances|L]):- etat11(L).
    requete([stop|L]):- etat11(L).
    
    requete([tournes|L]):- etat8(L). %si présence du mot tournes en 1er, passage à l'état 8 de l'automate.
    requete([avances|L]):- etat8(L).
    requete([stop|L]):- etat8(L).
    
    requete([avancer|L]):- etat2(L).
    requete([avances|L]):- etat2(L).
    requete([tourner|L]):- etat2(L).
    requete([tournes|L]):- etat2(L).
    requete([pivoter|L]):- etat2(L).
    requete([pivotes|L]):- etat2(L).
    requete([aller|L]):- etat2(L).
    requete([va|L]):- etat2(L).
    
    requete([machine|L]):- etat3(L).
    requete([robot|L]):- etat3(L).
    
    requete([je|L]):- etat9(L).
    requete([nous|L]):- etat4(L).
    
    etat2(['à gauche'|L]) :- etat11(L).
    etat2(['à droite'|L]) :- etat11(L).
    etat2([devant|L]) :- etat11(L).
    
    etat2(['à gauche'|L]) :- etat8(L).
    etat2(['à droite'|L]) :- etat8(L).
    etat2([devant|L]) :- etat8(L).
    
    etat3([avancer|L]) :- etat2(L).
    etat3([avances|L]) :- etat2(L).
    etat3([tourner|L]) :- etat2(L).
    etat3([tournes|L]) :- etat2(L).
    etat3([pivoter|L]) :- etat2(L).
    etat3([pivotes|L]) :- etat2(L).
    etat3([aller|L]) :- etat2(L).
    etat3([va|L]) :- etat2(L).
    
    etat4([te|L]) :- etat5(L).
    etat4(['t\''|L]) :- etat12(L).
    
    etat5([demandons|L]) :- etat6(L).
    
    etat6([de|L]) :- etat7(L).
    
    etat7([tourner|L]) :- etat2(L).
    etat7([avancer|L]) :- etat2(L).
    etat7([pivoter|L]) :- etat2(L).
    
    etat8(['s\'il te plait'|L]) :- etat11(L). %suite au mot exemple tournes on arrive ici et si l'analyseur reconnait s'il te plait ou je te prie on arrive dans l'état final.
    etat8(['je te prie'|L]) :- etat11(L).
    
    etat9([te|L]) :- etat10(L).
    etat9(['t\''|L]) :- etat13(L).
    
    etat10([demande|L]) :- etat6(L).
    
    etat12([ordonnons|L]) :- etat6(L).
    
    etat13([ordonne|L]) :- etat6(L).
    
    etat11([]). % état final de l'automate, fin de l'analyse de la phrase si pas d'autres mots derrières et donc return true pour le prompt prolog

  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
    Alors, les modifs sont très simples comme je le disais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    requetes(ExprItem,Resultat) :-
    	atomic_list_concat(Lst, ',', ExprItem),
    	(   requete(Lst) -> Answer = 'OK'; Answer = 'KO'),
    	send(Resultat, selection, Answer).
    Se teste avec "robot,tournes,à droite,s'il te plait", plus d'antislash à l'apostrophe.
    "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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup ça marche effectivement très bien.

    je suppose que les ',' restent obligatoires pour que la requête soit reconnue par l'analyseur ?

    et autre question, quel serait la commande send() pour intégrer une image dans la boite de dialogue ?

  12. #12
    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
    Si vous avez regardé le code atomic_list_concat(Lst, ',', ExprItem) ... vous aurez remarqué que les ',' servent de séparateurs pour distinguer les différents éléments de la commande.
    Si vous n'en voulez plus, il faut vous lancer dans une analyse du texte fourni, ce qui je pense doit dépasser le cadre de votre projet de DUT.
    Ce que vous pouvez tenté c'est "robot tournes droite" eviter les "aà droite" "s'il vous plait" qui complique l'analyse. La vous n'avez que les espaces comme séparateur.
    "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

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    d'autres membres de notre groupe avaient à s'occuper de cette partie 'reconnaissance' des mots important de la phrase et se sont occupés à créer un programme qui permet de dépouiller une phrase des mots inutile et de faire ressortir les mots essentiels de la phrase comme par exemple :

    va à droite --> [droite]
    reste en case 7 --> [case 7]
    trouve la couleur orange sur la grille --> [orange]
    ...

    du coup je pense que l'on va rester sur cette jolie solution et les virgules ne vont pas gêner énormément.

    et du coup pour insérer une image à la boite de dialogue avec une commande send() est-ce possible ?

  14. #14
    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
    Dans ce cas c'est parfait.
    Maintenant, pour une image c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    requetes(ExprItem,Resultat) :-
    	% gtrace,
    	atomic_list_concat(Lst, ',', ExprItem),
    	% maplist(writeln, Lst),
    	(   requete(Lst) -> Answer = image('happy.bm'); Answer = image('sad.bm')),
    	send(Resultat, selection, Answer).
    Cà marche pour des images prédéfinies (répertoire C:\Program Files\pl\xpce\bitmaps sous Windows), sinon vous donnez le chemin d'accès complet à l'image.
    "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

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    pour l'image en BM de sad.bm tout va bien mais impossible en revanche d'afficher l'image happy.bm et je ne sais pas pourquoi

    [EDIT] problème du happy.bm résolu vous aviez juste oublié une parenthèse après celle de ('sad.bm'),

  16. #16
    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
    Effectivement, j'ai mal recopié mon code, mais, bizarre, ça n'aurait pas du compiler !
    "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

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    j'aimerais savoir comment pouvoir déclarer une variable X qui permet de prendre la valeur de n'importe quel valeur entière rentrée par l'utilisateur.

    c'est pour executer des commandes du genre :

    tournes de X tours vers la droite.


    merci de votre aide

  18. #18
    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
    Quelle methode utilisez-vous pour analysez la commande finalement ?
    "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

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Points : 1
    Points
    1
    Par défaut
    nous utilisons la méthode de l'automate comme le code que j'ai mis précédemment afin de pouvoir en faire l'interface graphique que nous présenterons.

    mais nous avons besoin de faire apparaître la notion de quantité avec des nombre réels dans les ordres qualifiés de mémoires (la Xième requête,la Xième case...). et du coup nous aurions besoin de savoir comment faire en sorte que l'utilisateur puisse entrer une valeur quelconque en tant que paramètre et que celui-ci soit reconnu.

  20. #20
    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
    Pour tester si une variable est un nombre vous avez le predicat number/1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    number(@Term)                                                     [ISO]
        True if Term is bound to an integer or floating point number.
    Le @ indique que l'argument est instancié (a une valeur).
    Ensuite, pour le mémoriser le nombre, vous pouvez utiliser assert(nombre(X)), qui le mémorise dans la base de données, en prenant soin au début des requetes de "nettoyer" la base de données par un retractall(nombre(_)).
    "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. Réponses: 3
    Dernier message: 13/08/2013, 08h38
  2. Choix d'un fichier par une boite de dialogue
    Par frevale dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/04/2009, 16h27
  3. ouvrir un fichier avec une boite de dialogue
    Par gdulu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/03/2009, 16h46
  4. Pas de fichiers à l'ouverture d'une boite de dialogue
    Par mathrix77 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/02/2008, 00h21
  5. Réponses: 2
    Dernier message: 01/05/2004, 12h19

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