Vous êtes sur la page 1sur 2

Académie Internationale Mohammed6 de l'Aviation Civile A.U.

2022/2023
ième
Casablanca GI18- 2 année Génie Informatique

TD/TP N°1 : Langage Prolog


Exercice 1 :
1) Définir à l’aide des prédicats les relations suivantes :
- ali est le père de dris.
- dris est le père de ahmed et halima.
- Ahmed est le père de mohammed.
- kamal est le père de khalid.
- khalid est le père saïd.
- halima est la mère de hamid est touria.
- khadija est la mère de saïd et fatima.
2) Exprimer en prolog les questions suivantes :
a- Quel est le père de dris ?
b- Est ce que dris est le père de halima ?
c- Quels sont les enfants de halima ?
d- Quels sont les enfants de khalid et khadija ?
e- Quel est le grand père maternel de hamid ?
f- Quels sont les parents de saïd ?
g- Quel est le grand père maternel de hamid ?
3) Ajouter les prédicats suivants :
- frère(X,Y) : vrai si X et le frère de Y.
- grand_père(X, Y) : vrai si X est le grand père de Y
- ancêtre(X,Y) : vrai si X est l’ancêtre de Y (donner une définition récursive).
- oncle(X,Y) : vrai si X est l’oncle de Y.

Exercice 2 :
Écrire un programme prolog qui permet d’afficher les mentions d’un étudiant en fonction de
la moyenne générale :
· 0 : Note éliminatoire
· M <10 : Médiocre.
· 10<=M<12 : Passable.
· 12<=M<14 : Assez Bien.
· 14 <=M<16 : Bien.
· M>=16 : Très Bien.

Exercice 3 :
Écrire un prédicat qui permet de calculer la somme S = 1 + 2 + 3+…+N.
La définition récursive du problème est:
· S1 = 1
· SN = 1+2.+ … +( N-1) + N = SN-1 + N.
Exercice 4 :
Écrire un prédicat fact qui permet de calculer N !.
La définition récursive du problème est :
• 0! = 1 ! = 1
• N ! = 1*2* … *( N-1)* N = (N-1) ! * N

Exercice 5 :
Écrire un programme qui permet de calculer XN. La définition récursive du problème est :
• X0 = 1
• XN= X*X* … * X (N fois) = XN-1 *X

Exercice 6 :
Donner un prédicat permettant de déterminer si A est un diviseur de B.

Exercice 7 :
On veut écrire un programme qui permet de calculer le plus grand commun diviseur de deux
entiers.
• Donner la définition récursive du problème
• Écrire le prédicat pgcd.

Exercice 8 :
Ecrire un prédicat qui affiche la représentation binaire d’un entier.
La définition récursive du problème est la suivante :
- Si N = 0, on ne va rien faire
- Sinon, on calcule le binaire de N div 2 et on affiche le reste de la division euclidienne de N
par 2.

Exercice 9 :
1) Ecrire un prédicat qui calcule la valeur de la fonction f définie par :
f(x) = 1 si x <3
= 2 si 3<= x <=6
= 0 sinon
2) Ecrire un prédicat qui calcule le maximum de deux entiers.
3) Ecrire un prédicat permettant de calculer le maximum de trois entiers.

Exercice 10 :
Ecrire un prédicat qui calcule le nième terme de la suite de Fibonacci donnée par:
F(0)=1
F(1)=1
F(n)=F(n-1)+F(n-2) si n≥2

Vous aimerez peut-être aussi