Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

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: Truyen247.Pro

Tags: