Prolog
Biecoul
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Biecoul Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Biecoul Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
J'ai un problème prolog qui tourmente depuis un moment et je n'arrive pas à trouver la solution. Je serais ravis si quelqu'un peut m'aider.
Voici le l'énoncé :
Trois amis se retrouvent premier, second et troisième dans un concours de programmation
- Chacun des trois a un prénom différent, aime un sport différent et est de nationalité
différente.
- Michael aime le basket et a fait mieux que l’américain.
- Simon l’israélien , a fait mieux que le tennisman .
- Le joueur de cricket était premier.
Qui est l’australien? Quel est le sport pratiqué par Richard?
Pour résoudre cette enigme sous Prolog, on pourra commencer par instancier les valeurs
d’une structure de données convenable.
Chaque personne a trois attributs, et peut être représentée par la structure
friend(Name,Country,Sport).
Il y a trois amis dont l’ordre dans le concours est significatif. Ceci suggère une suite ordonné
de trois éléments comme structure pour le problème , c’est à dire la liste :
[friend(N1,C1,S1),friend(N2,C2,S2),friend(N3,C3,S3)]
On pourra ensuite écrire d’autres programmes comme did-better , name , nationality,
sport et first.
Voici le l'énoncé :
Trois amis se retrouvent premier, second et troisième dans un concours de programmation
- Chacun des trois a un prénom différent, aime un sport différent et est de nationalité
différente.
- Michael aime le basket et a fait mieux que l’américain.
- Simon l’israélien , a fait mieux que le tennisman .
- Le joueur de cricket était premier.
Qui est l’australien? Quel est le sport pratiqué par Richard?
Pour résoudre cette enigme sous Prolog, on pourra commencer par instancier les valeurs
d’une structure de données convenable.
Chaque personne a trois attributs, et peut être représentée par la structure
friend(Name,Country,Sport).
Il y a trois amis dont l’ordre dans le concours est significatif. Ceci suggère une suite ordonné
de trois éléments comme structure pour le problème , c’est à dire la liste :
[friend(N1,C1,S1),friend(N2,C2,S2),friend(N3,C3,S3)]
On pourra ensuite écrire d’autres programmes comme did-better , name , nationality,
sport et first.
2 réponses
Bonjour,
Nous ne ferons pas votre exercice à votre place.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.
Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.
Pour poster votre code, merci de penser à la coloration syntaxique.
Nous ne ferons pas votre exercice à votre place.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.
Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.
Pour poster votre code, merci de penser à la coloration syntaxique.
voici ce que j'ai écris. Mais avec technique, le programme ne résout pas vraiment le problème mais on lui renseigne les solutions. Ce que je voulais c'est que le programme resout le problème. Exple : qu'il trouve que la nationalité de simon est israel et son sport est le cricket..
nationality(simon,israel).
nationality(richard,amerique).
nationality(michael,australie).
sport(michael,basket).
sport(simon,cricket).
sport(richard,tennis).
friend(michael,australie,basket).
friend(simon,israel,cricket).
friend(richard,amerique,tennis).
name(richard).
name(simon).
name(michael).
didbetter(simon, michael).
didbetter(michael, richard).
didbetter(simon, richard).
ordre([friend(N1,C1,S1),friend(N2,C2,S2),friend(N3,C3,S3)]):-N1=simon,C1=israel,S1=cricket,N2=michael,C2=australie,S2=basket,N3=richard,C3=amerique,S3=tennis.
first(X):-didbetter(X,Y),didbetter(X,Z),didbetter(Y,Z).