Đáp án Lập trình logic va ràng buộc (cao học)

Các bạn tham khảo đáp án này nhé

 

%cau1

xoan(_,[],[]).
xoan(1,[_|T],T):-!.
xoan(N,[H|T],[H|Y]):-N>1,N1 is N-1, xoan(N1,T,Y).

%cau 2
sach(tinhoccoban,lmhai,2010,hutech).
sach(tinhocnangcao,lmhai,2010,nxbgd).
sach(lthdt,ncthanh,2012,hutech).
sach(mmt,ndquang,2001,hutech).
sach(mmtnc,ndquang,2014,hutech).
tacgia(lmhai,1963).
tacgia(ncthanh,1972).
tacgia(ndquang,1978).

cau21(X,Sosach):- findall(NamXB,(sach(_,_,NamXB,X),NamXB>2003,NamXB<2013),Lists), length(Lists,Sosach).
cau22(X):-findall(Tensach,(sach(Tensach,Tacgia,_,_),tacgia(Tacgia,Namsinh), Namsinh>2013-40),X).
cau23(X,Sach):-findall(Tensach,sach(Tensach,X,_,_),Sach).

% cau 3
sv(sv001,ngaysinh(1,1,1990),ch01).
sv(sv002,ngaysinh(1,2,1991),ch01).
sv(sv003,ngaysinh(1,3,1993),ch02).
diem(sv001,toan,lmhai,5).
diem(sv001,ly,ncthanh,4).
diem(sv001,hoa,nvmui,4).
diem(sv002,toan,lmhai,6).
diem(sv002,ly,ncthanh,7).
diem(sv002,hoa,nvmui,5).
diem(sv003,hoa,nvmui,10).
diem(sv003,toan,nvmui,5).
diem(sv003,ly,nvmui,3).

gv(lmhai,1963).
gv(ncthanh,1975).
gv(nvmui,1978).


hocdot(Sv):- findall(Masv,(diem(Masv,_,_,Diem), Diem<5),Sv).
deletedup([],[]). %dong 30
deletedup([X|Tail],Tail1):-member(X,Tail),deletedup(Tail,Tail1).
deletedup([X|Tail],[X|Result]):-not(member(X,Tail)),deletedup(Tail,Result).
cau31(Sv):- hocdot(X),deletedup(X,Sv).

diemsv(Masv,Tongdiem):-findall(Diem,diem(Masv,_,_,Diem),Diemlst),sum_list(Diemlst,Tongdiem).
tdtungsv(Masv,TD):-sv(Masv,_,_), diemsv(Masv,TD).
td_max(TD_max):- findall(TD,tdtungsv(_,TD),TDlst),max_list(TDlst,TD_max).
%tao list tong diem sv
cau32(Thukhoa_lst):-findall(Masv,(tdtungsv(Masv,TD),td_max(TD)),Thukhoa_lst).
%cau33:- tuongtucau(22), sudungdeletedup(cau31).



 

 

0
×