1. Trang chủ
  2. » Công Nghệ Thông Tin

Điều khiển quá trình quay lui (backtracking) potx

10 205 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 100,96 KB

Nội dung

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 = 60 0 , góc Y = 60 0 . 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 16 4. Danh sách  3 cách viết danh sách:  [Item1, Item2, …]  [Head | Tail]  [Item1, Item2, … | others]  List đượctổ chứcbên trong bằng cây nhị phân This is trial version www.adultpdf.com 17 Các thao tác vớidanhsách  Chiều dài d/s length(L,Kq): chiều dài d/s L length( [ ], 0). length( [ _ | T], Kq) :- length(T,Kq1), Kq is Kq1 + 1. _: biến vô danh This is trial version www.adultpdf.com 18 Các thao tác vớidanhsách  Quan hệ thành viên member(X, L): X có phảilà1 thànhphầncủa L? Ví dụ: member(b, [a,b,c]). Æ true member(H,[H | _). member(H,[_| Tail]) :- member(H, Tail). This is trial version www.adultpdf.com 19 Các thao tác vớidanhsách  Nối d/s (concatenation) conc(L1, L2, L3): Nối L1 và L2 thành L3 ?- conc([a,b],[c,d],L). L = [a,b,c,d] conc([],L,L). conc([H|T1],L2,[H|T3]) :- conc(T1,L2,T3). ?- conc(L1,L2, [a,b,c]).  Thêm 1 phầntử vào d/s add(X,L, [X|L]). This is trial version www.adultpdf.com 20 Các thao tác vớidanhsách  Xoá 1 phầntử X ra khỏi d/s del(X,L,L1). del(X, [X|T], T). del(X, [Y|T], [Y|T1]) :- del(X,T,T1). ?- del(a,[a,b,a,a],L) L = [b,a,a] L = [a,b,a] L = [a,b,a]  Thêm 1 phầntử vào bấtkìchỗ nào trong d/s insert(X,L,L1) :- del(X,L1,L). This is trial version www.adultpdf.com . 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. 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) :-. 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

Ngày đăng: 13/08/2014, 19:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN