• Aucun résultat trouvé

TD Programmation en Logique n°5 Exercice 1 :

N/A
N/A
Protected

Academic year: 2022

Partager "TD Programmation en Logique n°5 Exercice 1 :"

Copied!
1
0
0

Texte intégral

(1)

Page 1 sur 1

Université Grenoble Alpes

U.F.R. Sciences de l’Homme et de la Société Licence MIASHS 2ème année

TD Programmation en Logique n°5 Exercice 1 :

On dispose de faits représentant des caractéristiques d'animaux ou de classes d'animaux. Le premier argument est un animal ou une classe d'animaux. Le second est une liste de caractéristiques. Ces caractéristiques peuvent inclure des classes d'animaux définis ailleurs. Par exemple, le 5e fait définit un carnivore comme un mammifère mangeant de la viande et carnivore est lui-même utilisé dans le 8e fait.

caracteristique(mammifère,[aDesPoils]).

caracteristique(mammifère,[donneDuLait]).

caracteristique(oiseau,[aDesPlumes]).

caracteristique(oiseau,[vole,pondDesOeufs]).

caracteristique(carnivore,[mammifère,mangeViande]).

caracteristique(carnivore,[dentsPointues,griffes]).

caracteristique(ongulidés,[mammifère,possèdeSabots]).

caracteristique(guépard,[carnivore,tâchesNoires,couleurFauve]).

caracteristique(zèbre,[ongulidés,striesNoires]).

caracteristique(canari,[oiseau,jaune]).

Ecrire le prédicat déduire/2 qui détermine la liste de tous les animaux ou classes d'animaux correspondant à une liste de caractéristiques donnée. Par exemple:

?- deduire([possèdeSabots,habiteSavane,donneDuLait,striesNoires],R).

R = [mammifère,ongulidés,zèbre]

Attention, il faut que toutes les caractéristiques soient vérifiées pour qu'une déduction puisse être réalisée ; ainsi, on ne peut pas utiliser le 5e fait dans l'exemple précédent parce que mangeViande n'est pas connu.

Exercice 2 : Grammaire

a) Ecrire une grammaire DCG en Prolog pour reconnaître des énoncés de la forme [chiffre, opérateur, chiffre]. Par exemple : [un, plus, trois] ou [quatre, moins, un]. Les chiffres vont de un à cinq et les opérateurs sont plus et moins.

La règle de départ s’appelle exp.

Exemple :

?- exp([trois, plus, deux],[]).

true

?- exp([cinq, moins],[]).

false

b) Ajouter à la grammaire le code Prolog permettant d’évaluer l’expression. On ajoute un argument à la règle exp (la valeur calculée) :

?- exp(V,[deux, plus, cinq],[]).

V = 7.

?- exp(V,[trois, moins, cinq],[]).

V = -2.

Références

Documents relatifs

e) les aéroports accessibles depuis Francfort, avec une correspondance, sans tenir compte des horaires, sans retour à Francfort. a) Représenter par des faits l'âge des

Pour certains des exercices qui suivent il peut être intéressant d’effectuer des calculs en s’aidant d’un tableur pour tester les résultats sur un grand nombre de valeurs

Si le mot de passe satisfait les crit`eres, le programme affiche le message ’mot de passe valide’, si le message est trop long, il affiche le message ’mot de passe trop long’, si

Le verbe FAIRE se conjugue avec l’auxiliaire

5) Définition de la continuité d’une application en un point et preuve du fait qu’une composée d’applications continues est continue.

´ Ecrivez deux versions d’une fonction qui prend en entr´ee les coordonn´ees de deux points (sous forme de paires de r´eels) et qui renvoie le carr´e de la longueur du

Un polynˆome (creux) sera alors constitu´e d’une liste de monˆomes, cette liste n’´etant pas suppos´ee ˆetre tri´ee en fonction des degr´es des

On d´esigne par les lettre f , g et b les proposition atomiques « ˆetre membre de la direction financi`ere », « ˆetre membre de la direction g´en´erale »,« ˆetre membre de