• Aucun résultat trouvé

TP1 PROLOG (PROgrammation LOGique) ________________________________________________________________

N/A
N/A
Protected

Academic year: 2022

Partager "TP1 PROLOG (PROgrammation LOGique) ________________________________________________________________"

Copied!
2
0
0

Texte intégral

(1)

Luisa Iturrioz &Alain Mille

M1 Inf / BIA / Octobre 2005

TP1 PROLOG (PROgrammation LOGique)

________________________________________________________________

1. Le site de SWI-Prolog 5.4 : http://www.swi-prolog.org/

2. Mes premiers programmes : Faites fonctionner les programmes ci-dessous pour vous familiariser avec l’environnement de Prolog

A)

pere(charlie,david).

pere(henri,charlie).

grandpere(X,Y) :- pere(X,Z), pere(Z,Y).

Vous tapez ce programme dans un éditeur de texte simple et sauvegardez dans un fichier « prprog.pl

» (par exemple, ou tout autre nom avec le suffixe .pl).

?- consult('

c:/prprog.pl

').

///*** attention à respecter le « chemin » d'accès à votre source Prolog.***////

% c:/prprog.pl compiled 0.00 sec, 0 bytes Yes

?- pere(X,Y).

X = charlie Y = david ; X = henri Y = charlie ; No

?- grandpere(X,Y).

X = henri Y = david ; No

?- grandpere(henri,X).

X = david ; No

?-halt.

B) habite(jean,paris).

habite(hans,munich).

habite(juan,madrid).

capitale(paris).

capitale(madrid).

habite-capitale(Qui) :- habite(Qui,Qqpart),capitale(Qqpart).

Welcome to SWI-Prolog (Version 5.0.9)

Copyright (c) 1990-2002 University of Amsterdam.

SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.

Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

(2)

Luisa Iturrioz &Alain Mille

?- consult('c:/dxprog.pl').

% c:/dxprog.pl compiled 0.00 sec, 0 bytes Yes

?- habite(jean,paris).

Yes

?- habite(jean,Qqpart).

Qqpart = paris ; No

?- habite-capitale(Qui).

Qui = jean ; Qui = juan ; No

?- habite(Qui,paris).

Qui = jean ; No

?- habite(_,Qqpart).

Qqpart = paris ; Qqpart = munich ; Qqpart = madrid ; No

?- habite(Qui,Qqpart),capitale(Qqpart).

Qui = jean Qqpart = paris ; Qui = juan Qqpart = madrid ; No

?-halt.

C) Les Mutants non_vide([_|_]).

mutant(S) :- animal(D), animal(F), append(Debut,Milieu,D),

non_vide(Debut), non_vide(Milieu), append(Milieu,_,F),

append(Debut,F,M), name(S,M).

animal("alligator").

animal("lapin").

animal("tortue").

animal("pintade").

animal("cheval").

?- consult('c:/mutants.pl').

% c:/mutants.pl compiled 0.00 sec, 1,568 bytes Yes

?- mutant(X).

X = alligatortue ; X = lapintade ; X = chevalligator ; X = chevalapin ; No

?-

Références

Documents relatifs

Etant données une station de départ et une station d'arrivée, il faut trouver un chemin de l'une à l'autre en précisant les lignes empruntées, les directions

Définir le prédicat resoudre(S) qui donne la liste S des opérateurs à appliquer pour passer de l’état initial à l’état final. On va maintenant appliquer le

Les dirigeants de la société de découpe de cuir, désirant alléger le travail de leurs experts, et surtout leur éviter des déplacements trop fréquents en atelier pour des

Il s’agit d’un problème classique dont vous devez présenter un programme PROLOG de résolution en déclarant ce qui est doit être vrai dans toute situation et en cherchant quelles

Vous tapez ce programme dans un éditeur de texte simple et sauvegardez dans un fichier « prprog.pl » (par exemple, ou tout autre nom avec le suffixe .pl). ?- consult('

objets complexes, description à l'aide d'un terme composé : (symbole fonctionnel suivi de la liste parenthèsée des arguments)

Opening the cursor allocates memory for the cursor and makes it ready for fetching the rows returned by the SQL statement into it. For example, we will open above-defined cursor

* Appliquer la relation fondamentale de la dynamique et en tirer l'équation différentielle donnant la variation de l'élongation angulaire en fonction du temps. * En