
11
Điềukhiển quá trình quay
lui (backtracking)
Prolog tựđộng quay lui khi cầnthiết
Có thểđiềukhiển quá trình thựcthicủachương trình
bằng cách sắplạithứtựcác mệnh đề
Nhát cắt là một toán tửdùng để ngăn cản quá trình
backtracking của Prolog.
Ví dụ:
f(X,0):- X <3.
f(X,2) :- 3=<X, X<6.
f(X,4) :- 6=<X.
f(X,0):- X <3, !.
f(X,2) :- 3=<X, X<6, !.
f(X,4) :- 6=<X.
nhát cắt
This is trial version
www.adultpdf.com

12
Các phép toán sốhọc
+
-
*
/ (chia sốthực)
// (chia sốnguyên)
phép gán: Bien is Bieu_thuc
so sánh: <, =<, =:=, =\=, >, >=
mod
** (luỹthừa)
between(Low,High,Value)
succ(Int1,Int2)
plus(Int1,Int2,Int3)
This is trial version
www.adultpdf.com

13
Bài tập
1. Cho góc X = 600, góc Y = 600. Chứng minh
các cạnh XY = XZ, XY = YZ
bang(X,Y)
banggoc(X,A)
bangnhau(XY,UV) ???
A + B + C = 180 ÎC is 180 - A - B
This is trial version
www.adultpdf.com

14
Bài tập
2. Chứng minh tứgiác nối trung điểm4 cạnh của1
tứgiác là hình bình hành.
3. Biết Tùng là bốcủaDương. Dương là anh của
Hoa. Hoa là mẹcủa Trung. Trung là anh của
Kiên. Cho biếtmối quan hệgiữaTùngvàKiên,
giữaDương và Kiên.
4. Tìm USCLN(X,Y)
5. Viết chương trình tính giai thừa cho sốtựnhiên.
giaithua(N,Kq):- N1 is N-1, giaithua(N1,Kq1), Kq is
Kq1*N.
This is trial version
www.adultpdf.com

15
4. Danh sách (list)
là dãy các phầntửcùng kiểu
Ví dụ: [mai, ghita, sơn, trống] là list
[ ] - list rỗng
List khác rỗng gồm:
phầntửđầu tiên (head)
phầncònlại(tail)
Dấu| được dùng để tách phần head và tail
Phầntửcủa 1 list là bấtkìloạiđốitượng nào,
kểcảlist
This is trial version
www.adultpdf.com

