Nothing Special   »   [go: up one dir, main page]

Résumé Prolog

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

Introduction au langage Prolog

Les Prédicats, les faits et les règles en utilisant les bases de connaissances
(bases de faits et bases de règles).
- Un langage prolog est constituée d’une base de faits et d’une base de règles.
- Un prédicat est une relation entre plusieurs termes.

1- Le langage Prolog : termes et prédicats.


a- Ecrire un prédicat père, frère et grand-père
- pere(ahmed,houssein).
- pere(ahmed,saad).
- pere(houssein,omar).
- pere(omar,osman).
- frere(X,Y):-pere(Z,X),pere(Z,Y),X \==Y.
- grand-pere(X,Y):-pere(X,Z),pere(Z,Y).

2- La liste en Prolog
La liste en prolog est une structure de données qui s’exprime sous la forme
[T|Q).
1- Écrire un prédicat prologue qui détermine la longueur d’une liste
taille([],0).
taille([T|Q],N1):-taille(Q,N2),N1 is N2+1.

2- Écrire un programme prolog qui calcule la somme des éléments d'une liste.
somme([],0).
somme([T|Q],N):-somme(Q,N2),N is N2+T.
AI 2023/2024 S
3- Écrire un programme prolog qui supprime les n premiers élément d'une liste.
supp(_,[],[]).
supp(T,[T|Q],L):-supp(T,Q,L).
supp(X,[T|Q],L3):-supp(X,Q,L2),append([T],L2,L3).
4- Écrire un programme prolog détermine si un élément appartient à une Liste.
appartient(T,[T|Q]).
appartient(X,[T|Q]):-appartient(X,Q).
5- Écrire un programme prolog qui inverse les éléments d'une liste.
invers([],[]).
invers([T|Q],L6):-invers(Q,L5),append(L5,[T],L6).
6- Écrire un programme prolog qui trouve le maximum des éléments d'une liste.
maximum([],M,M).
maximum([T|Q],M) :- maximum(Q,T,M).
maximum([T|Q],Y,M) :- T =< Y, maximum(T,Y,M).
maximum([T|Q],Y,M) :- T > Y, maximum(Q,T,M).
7- Écrire un programme prolog qui trouve le minimum des éléments d'une liste.
min([],N,N).
min([T|Q],N):-min(Q,T,N).
min([T|Q],F,N):-T >=F,min(T,F,N).
min([T|Q],F,N):-T < F,min(Q,T,N).
8- Écrire un programme prolog qui trouve les éléments pairs d'une liste.
pair(X):- X mod 2 =:=0.
paire([], []).
paire([T|Q], [T|D]) :- T mod 2 =:= 0, paire(Q, D).
paire([_|Q], D) :- paire(Q, D).

2
AI 2023/2024 S
9- Écrire un programme prolog qui trouve les éléments impairs d'une liste.
impaire([], []).
impaire([T|Q], [T|D]) :- T mod 2 =\= 0, impaire(Q, D).
impaire([_|Q], D) :- impaire(Q, D).
10- Écrire un programme prolog qui compte le nombre de fois qu'un élément
apparait dans une liste.
ou bien
-Écrire un prédicat prologue qui détermine le nombre d’occurrences d’un élément
dans une liste
occurr([],_,0).
occurr([T|Q],T,N) :- occurr(Q,T,N1),N is N1+1.
occurr([T|Q],T,N) :- T\==Q, occur
r(Q,T,N).
11- Écrire une prédicat prologue qui duplique tous les éléments d’une liste [a,b,c]
donne [a,a,b,b,c,c].
dupliquer ([], []).
dupliquer([T|Q], [T,T|N]) :- dupliquer(Q, N).
12- Écrire un programme prolog qui double les éléments d'une liste.
double([], []).
double([T|Q], [N|N2]) :- N is T*T, double(Q, N2).
13- Écrire un programme prolog qui trouve le dernier élément d'une liste.
dernier ([T], T).
dernier ([_|Q], N) :- dernier(Q, N).
14- Écrire un programme prolog qui concatène les éléments deux listes.
concat( [], Q, Q).
concat( [T | Q], L2, [T | L3]) :- concat( Q, L2, L3).
Question ; concat([4,5,6],[1,2,3],L3).

Vous aimerez peut-être aussi