Prolog

Bonjour,
salut aa tts.svp mon froof donne un exemple et lui ma demander de repondre avant le 7 mai
tts les thèoreme de droite.(parallele,perpondiculaire....) et les plans.pour le executee avec sui_prolog pou tester se deux droites sont parallele perpondiculaire ou ....
svp je conte sur vous.
Configuration: Windows XP
Internet Explorer 6.0

15 réponses

  1. bonsoir,

    j'ai rien compris, tu peux te rééxprimer en français correct
    0
    1. merci mon ami, le probleme est :
      ************ la programmation PROLOG***********
      """"donner le programmation en prolog de ce probleme suivant:
      h1:"par deux points distincts d'un plan passe une droite e une seul"
      h2:"par trois points non alignés de l'espace passe un plan et un seul"
      l'équation d'un droite
      les droites paralléles
      les droites perpondiculaires
      et d'autre connaissance sur les droites et plans****
      0
      1. Modérateur
        Tu comptes sur nous pour faire ton exercice?
        0
        1. non mais seulement pour me guider.je pense que mon probléme et claire.svp jai rien a faire.
          jai fais comme solution des droites paralléle ce programme mais erreur au nivau de m=12 et r=10.
          comme resultat de lexecution le programme donne toujour que les droites D1,D2 toujour YES ca ve dire parallele.mais le m et r recoit des valeur différent????????????
          /******* les fait *********/
          droite(D1,m,p1)./*** avec m le cofficient directeur et p1 l'ordooné et D1 et le droite***/
          point(x,y).
          droite(D2,r,p2).
          parallele(D1,D2).
          m=12.
          r=10.
          /************* régle **************/
          parallele(D1,D2) :- droite(D1,m,p1),droite(D2,r,p2),m=r.
          0
          1. Modérateur
            mais erreur au nivau de m=12 et r=10.

            Tu ne peux pas déclarer des variables en dehors d'un prédicat en Prolog.

            Je crois que tu t'y prends mal. Prenons un exemple: comment caractériser une droite? On n'a qu'à faire comme si c'était une fonction linéaire, donc y = ax + b

            Donc le rôle de droite serait de ressortir le coefficient directeur (a) et l'ordonnée à l'origine.
            Donc droite devrait ressembler à ça:
            droite(D, Point1, Point2) :- .........

            Dans D tu pourrais avoir une liste qui serait composée de a et b calculés en fonction de Point1 et Point2.
            Donc D ressemblerait à ça: [0.5, 5] où a=0.5 et b=5

            Après dans parallèle il suffit juste de vérifier que deux droites ont le même coefficient directeur:
            paralleles([A|_], [A|_).

            Et voilà!
            0
            1. merci mr KILIAN mais ,j'ai tts mélanger plus que les exmans arrivent.je suis trés stréssé.
              exussé moi mais tu peux m'expliqué plus que ça.svp.
              je sais pas comment declaré lequation de droite y=ax+b
              et comment utilisee les liste pour resourdre mon probleme.merrrrrrci en avance mr KALIAN.
              0
              1. Modérateur
                Je regarderai ça demain, faut que j'aille dormir, moi aussi j'ai des examens :-)
                0
            2. merci et a demain.exusee mon ami et bon nuit.
              0
              1. Modérateur
                Pas de soucis, bonne nuit.
                0
            3. salut atts.qlq vous repont a mon question s'il vous plais.repooooooooooooooont svp.merci en avance
              0
              1. ************ la programmation PROLOG***********
                """"donner le programmation en prolog de ce probleme suivant: h1:"par deux points distincts d'un plan passe une droite e une seul" h2:"par trois points non alignés de l'espace passe un plan et un seul"
                l'équation d'un droite
                les droites paralléles
                les droites perpondiculaires
                et d'autre connaissance sur les droites et plans****
                svp reont a mon probleme svp
                0
                1. Modérateur
                  Salut,

                  Oui on connait l'énoncé ;-)
                  Ca va si je te donne la réponse demain soir?
                  0
              2. ok.merci mr kilian je cionte sur tois.merci en avance.
                0
                1. ok. je vais voir avec mon prof pour qu'il accepte que j'envoi la solutin apres demain,l'essentiel ce que j'aie une resultat demain.et merci en avance mr kalian
                  0
                  1. Modérateur
                    Wep on regarde ça ensemble demain soir, ça marche.
                    0
                  2. @kilianok.demain soir.merci mr kilian.et a demain.bonsoir
                    0
                2. Modérateur
                  Bon je vais m'inspirer de ça:
                  http://paquito.amposta.free.fr/glossc/coefdir.htm
                  Imagine qu'on aie deux points avec pour le premier point X1 et Y1, et pour le deuxième point X2 et Y2.

                  Pour calculer le a du y = ax + b, equation de la doite passant par ces deux points, il faut faire:
                  a = (Y2 - Y1) / (X2 - X1)
                  Et pour avoir b, b = Y1 - a X1

                  Une droite devra être identifiée par son coefficient directeur et son ordonnée à l'origine, une droite sera donc un truc comme ça: [A,B]

                  Donc droite ça donne:
                  droite([A,B], [X1,Y1], [X2,Y2]) :- A is (Y2-Y1)/(X2-X1), B is Y1-(A*X1).

                  Deux droites sont parallèles si elles ont le même coefficient directeur:
                  paralleles([A|_], [A|_]).

                  Deux droites sont perpendiculaires si le produit de leurs coefficients directeurs donnent -1:
                  perpendiculaires([A1|_], [A2|_]) :- C is A1*A2, C == -1.

                  Exemple dans swi_prolog:
                  ?- droite(A, [0,0], [1,1]), droite(B, [-1,1],[0,0]), perpendiculaires(A,B).
                  
                  A = [1, 0]
                  B = [-1, 0] 
                  
                  Yes
                  

                  Et voilà...
                  0
                  1. bon je vous remercie mr kilian j evous tester tt de suits et je te repondre
                    merci bcp
                    0
                    1. je pense que j'ai tracassé, désolé mr kilian mais le swui_prolog donne un erreur qui dit:
                      "ERROR: Undefined procedure: droite/3"
                      je pense que la définition de droite qui manque???
                      mon programme que j'ai tappé est la suivante:

                      droite([A,B], [X1,Y1], [X2,Y2]) :- A is (Y2-Y1)/(X2-X1), B is Y1-(A*X1).
                      paralleles([A|_], [A|_]).
                      perpendiculaires([A1|_], [A2|_]) :- C is A1*A2, C == -1.

                      merci en avance mr kilian
                      0
                      1. desolee mr kilian mon prolog et mal conpilee j'ai etais tester dans autre poste est ca marche merci mr kilian merci bcp
                        0