Prolog
1,
predicates
mean(symbol,symbol)
clauses
mean(cat,meo).
mean(dog,cho).
mean(bird,chim).
mean(chick,ga).
mean(pig,heo).
-----------------------------------
2,
predicates
parent(symbol,symbol)
male(symbol)
female(symbol)
bo(symbol)
me(symbol)
ong(symbol)
ba(symbol)
clauses
parent(a,b).
parent(a,c).
parent(b,d).
parent(b,e).
parent(c,f).
male(b).
male(d).
male(f).
female(c).
female(e).
bo(X):-parent(_,X),male(X).
me(X):-parent(_,X),female(X).
ong(X):-parent(_,X),male(X).
ba(X):-parent(_,X),female(X).
---------------------------------------------
3,
predicates
parent(symbol,symbol)
male(symbol)
female(symbol)
bo(symbol)
me(symbol)
ong(symbol)
ba(symbol)
ancestor(symbol,symbol)
related(symbol,symbol)
clauses
parent(a,b).
parent(a,c).
parent(b,d).
parent(b,e).
parent(c,f).
male(b).
male(d).
male(f).
female(c).
female(e).
bo(A):-parent(_,A),male(A).
me(A):-parent(_,A),female(A).
ong(A):-parent(_,A),male(A).
ba(A):-parent(_,A),female(A).
ancestor(A,B):-parent(A,B).
ancestor(A,B):-parent(A,C),ancestor(C,B).
related(A,B):-ancestor(A,B).
related(A,B):-ancestor(A,C),ancestor(B,C),A<>B.
-----------------------------------------------------------------------
4,
domains
Sv_cmp = sinhvien(ten,diemTTNT,diemXLA)
Ten=symbol
DiemTTNT=real
DiemXLA=real
predicates
svgioi(sv_cmp)
lasinhvien(sv_cmp)
clauses
lasinhvien(sinhvien(a,5,10)).
lasinhvien(sinhvien(b,8,9)).
lasinhvien(sinhvien(c,7,10)).
lasinhvien(sinhvien(d,9,9)).
lasinhvien(sinhvien(e,4,6)).
svgioi(sinhvien(Ten,X,Y)):-lasinhvien(sinhvien(Ten,X,Y)),(X+Y)/2>8,write(Ten),nl,fail.
----------------------------------------------------------------------------
5,
domains
Sv_cmp = sinhvien(ten,diemTTNT,diemXLA,diemLHD,diemTA)
Ten=symbol
DiemTTNT=real
DiemXLA=real
DiemLHD=real
DiemTA=real
predicates
svkem(sv_cmp)
svtb(sv_cmp)
svkha(sv_cmp)
svgioi(sv_cmp)
danhsach(sv_cmp)
clauses
danhsach(sinhvien(a,5,10,4,2)).
danhsach(sinhvien(b,8,9,5,4)).
danhsach(sinhvien(c,7,10,3,6)).
danhsach(sinhvien(d,9,9,8,7)).
danhsach(sinhvien(e,4,6,4,7)).
svgioi(sinhvien(Ten,X,Y,Z,W)):-danhsach(sinhvien(Ten,X,Y,Z,W)),(X+Y+Z+W)/4>8,write(Ten),nl,fail.
svkha(sinhvien(Ten,X,Y,Z,W)):-danhsach(sinhvien(Ten,X,Y,Z,W)),6<(X+Y+Z+W)/4,(X+Y+Z+W)/4<8,write(Ten),nl,fail.
svtb(sinhvien(Ten,X,Y,Z,W)):-danhsach(sinhvien(Ten,X,Y,Z,W)),4<(X+Y+Z+W)/4,(X+Y+Z+W)/4<6,write(Ten),nl,fail.
svkem(sinhvien(Ten,X,Y,Z,W)):-danhsach(sinhvien(Ten,X,Y,Z,W)),(X+Y+Z+W)/4<4,write(Ten),nl,fail.
-----------------------------------------------------------------------------------------
6,
predicates
UCLN(integer,integer,integer)
BCNN(integer,integer,integer)
clauses
UCLN(A,B,B):-A=0.
UCLN(A,B,C):-A>0,D=B mod A,UCLN(D,A,C).
BCNN(A,B,C):-UCLN(A,B,D),C=A*B/D.
--------------------------------------------------------------------------------
7,
predicates
giai(real,real,real,real,real,real)
kiemtra(real,real,real)
clauses
kiemtra(D,Dx,Dy):-D<>0,X=Dx/D,Y=Dy/D,write("X=",X),nl,write("Y=",Y),!.
kiemtra(_,_,Dy):-Dy<>0,write("Phuong trinh vo nghiem"),!.
kiemtra(_,Dx,_):-Dx<>0,write("Phuong trinh vo nghiem"),!.
kiemtra(_,Dx,Dy):-Dx=0,Dy=0,write("Phuong trinh co vo so nghiem").
giai(A1,B1,C1,A2,B2,C2):-
D=A1*B2-A2*B1,
Dx=C1*B2-C2*B1,
Dy=A1*C2-A2*C1,
kiemtra(D,Dx,Dy).
goal
giai(1,4,55,2,4,9).
------------------------------------------------------------------
8,
predicates
lap(real,real,real,real)
can2(real,real)
luciabs(real,real)
clauses
luciabs(X,Y):-X>0,Y=X,!.
luciabs(X,Y):-X<=0,Y=-X.
lap(X,Y,Xn,Xo):-D=Xn-Xo,luciabs(D,Z),Z>0.0001,E=Xn,F=(X/E+E)*0.5,lap(X,Y,F,E).
lap(X,Y,Xn,Xo):-D=Xn-Xo,luciabs(D,Z),Z<0.0001,Y=Xn.
can2(X,Y):-lap(X,Z,1,0),Y=Z.
-------------------------------------------------------------
9,
domains
array = integer*
predicates
dem(array,integer)
demsole(array,integer)
demsochan(array,integer)
clauses
dem([],0).
dem([H|T],X):-dem(T,Z),X=Z+1.
demsole([],0).
demsole([H|T],X):-H mod 2 = 1,demsole(T,Z),X=Z+1.
demsole([H|T],X):-H mod 2 = 0,demsole(T,Z),X=Z.
demsochan([],0).
demsochan([H|T],X):-H mod 2 = 1,demsochan(T,Z),X=Z.
demsochan([H|T],X):-H mod 2 = 0,demsochan(T,Z),X=Z+1.
goal
L=[2,2,4,5,5,6,2,4,7],dem(L,X),demsole(L,Xle),demsochan(L,Xchan),nl,write("So phan tu cua mang :",X),nl,write("So phan tu le:",Xle),nl,write("So phan tu chan :",Xchan).
-------------------------------------------------------------------------------
10,
domains
array = integer *
predicates
tong(array,integer)
tongchan(array,integer)
tong3(array,integer)
clauses
tong([],0).
tong([H|T],X):-tong(T,Z),X=Z+H.
tongchan([],0).
tongchan([H|T],X):-H mod 2 = 0,tongchan(T,Z),X=Z+H.
tongchan([H|T],X):-H mod 2 <>0,tongchan(T,Z),X=Z.
tong3([],0).
tong3([H|T],X):-H mod 3 = 0,tong3(T,Z),X=Z+H.
tong3([H|T],X):-H mod 3 <>0,tong3(T,Z),X=Z.
goal
L=[4,5,2,3,12],
tong(L,X),
tongchan(L,X2),
tong3(L,X3),
write("Tong cac phan tu : ",X),nl,
write("Tong cac so chan : ",X2),nl,
write("Tong | 3 : ",X3).
--------------------------------------------------------
11,
domains
array = integer*
predicates
tach(array,array,array)
append(array,array,array)
clauses
append([],L,L).
append([H|T],L,[H|TL]):-append(T,L,TL).
tach([],[],[]).
tach([H|T],X,Y):-H<0,tach(T,Array1,Array2),append(Array1,[],X),append(Array2,[H],Y),!.
tach([H|T],X,Y):-H>0,tach(T,Array1,Array2),append(Array1,[H],X),append(Array2,[],Y),!.
%Chan le thi thay dieu kien H<0 = H mod 2 = 1.H>0 = H mod 2 = 0
goal
L=[3,-4,-2,-6,7,5,-1],tach(L,X,Y),
write("DS Duong:"),write(X),nl,
write("DS Am:"),write(Y).
----------------------------------------------------------------------
12,
domains
array = integer*
predicates
max(array,integer)
min(array,integer)
clauses
max([],-32000).
max([H|T],H):-max(T,X),X<=H.
max([H|T],X):-max(T,X),X>H.
min([],32000).
min([H|T],H):-min(T,X),X>=H.
min([H|T],X):-min(T,X),X<H.
goal
L=[5,4,2,-1,3,4,-2,5,6,1,6],max(L,X),min(L,Y),
write("Max : "),write(X),nl,
write("Min : "),write(Y).
--------------------------------------------------
13,
domains
array = integer *
predicates
for(integer,array,integer)
clauses
for(_,[],-32000).
for(0,_,-32000).
for(N,[H|T],H):-N>=0,J=N-1,for(J,T,X),X<=H,!.
for(N,[H|T],X):-N>=0,J=N-1,for(J,T,X),X>H,!.
goal
L=[4,3,1,5,2,6,2],for(6,L,X),write(X).
-----------------------------------------------------------
14,
domains
array = integer*
predicates
append(array,array,array)
prefix(array,array)
suffix(array,array)
sublist(array,array)
clauses
append([],L,L).
append([H|T],L,[H|LT]):-append(T,L,LT).
prefix(Y,X):-append(Y,_,X).
suffix(Y,X):-append(_,Y,X).
sublist(Y,X):-append(_,Y,Z),append(Z,_,X).
------------------------------------------------------------------
15,
predicates
gt(real,real)
ckn(integer,integer,real)
clauses
gt(1,1):-!.
gt(X,Y):-M=X-1,gt(M,N),Y=N*X.
ckn(K,N,X):-N>=K,gt(N,Ngt),gt(K,Kgt),M=N-K,gt(M,Mgt),X=Ngt/Kgt*Mgt,!.
ckn(K,N,0):-N<K,write("Sao ma tinh duoc"),nl,!.
----------------------------------------------------------------- ^^!~
Bạn đang đọc truyện trên: Truyen2U.Com