Danh mục

Lập Trình Logic Trong ProLog - PGS.TS. PHAN HUY KHÁNH phần 6

Số trang: 19      Loại file: pdf      Dung lượng: 258.42 KB      Lượt xem: 16      Lượt tải: 0    
Thư viện của tui

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương 1: Mở đầu về ngôn ngữ PrologChương 2: Ngữ nghĩa của chương trình PrologChương3: Các phép toàn và số họcChương 4: Cấu trúc danh sáchChương 5: Kỹ thuật lập trình PrologPhụ lục A: Một số chương trình PrologPhụ lục B: Hướng dẫn sử dụng SWI-Prolog
Nội dung trích xuất từ tài liệu:
Lập Trình Logic Trong ProLog - PGS.TS. PHAN HUY KHÁNH phần 688 L p trình lôgic trong Prolog ?- 1 =:= 2-1 ?- X =:= Y.2. Cho bi t k t qu c a các câu h i sau ây : ?- op(X) is op(1). ?- op(X) = op(1). ?- op(op(Z), Y) = op(X, op(1)). ?- op(X, Y) = op(op(Y), op(X)).3. T các nh nghĩa s t nhiên (nat) và phép c ng (addi) cho trong ví d 1 m c nh nghĩa hàm, hãy vi t ti p các hàm tr (subt), nhân (multi), chia (divi), lu th a (power), giai th a (fact), so sánh nh hơn (less) và tìm ư c s chung l n nh t (pdg) s d ng các hàm ã có (ch ng h n less, subt...).4. Vi t hàm Prolog ki m tra m t s nguyên tuỳ ý N : a. N là s ch n (even number) s d ng quy tr c ti p Hư ng d n : N ch n thì N±2 cũng là s ch n b. N là s l (odd number) s d ng quy tr c ti p Hư ng d n : N l thì N±2 cũng là s l c. N ch n s d ng hàm ki m tra s l câu d (N ch n thì N±1 là s l ) d. N là s l s d ng hàm ki m tra s ch n câu c (N l thì N±1 ch n).5. Vi t hàm Prolog làm duy t (tracking/traverse) trên cây nh phân theo các th t trư c (reorder), sau (post-order) và gi a (in-order). Gi s cây nh phân tương ng v i bi u th c s h c (5+6)*(3-(2/2)) là các m nh Prolog như sau : tree(’*’, tree(’+’, leaf(5), leaf(6)), tree(’-’, leaf(3), tree(’/’, leaf(2), leaf(2))) K t qu duy t cây như sau : theo th t trư c : [*, +, 5, 6, -, 3, /, 2, 2] th t gi a : [5, +, 6, *, 3, -, 2, /, 2] th t sau : [5, 6, +, 3, 2, 2, /, -, *]6. Vi t l i hàm t o 10 s t nhiên ch n u tiên ( ã cho trong ph n quy) sao cho k t qu tr v là dãy s tăng d n.7. L p b ng nhân table(R, N) có s b nhân (multiplicator) t 1 tr i v i s nhân N (multiplier) và d ng l i khi g p s b nhân R (k t qu R * N). 89Các phép toán và s h c chính xác e = 10-5 :8. Vi t các hàm tính g n úng giá tr các hàm sau v i 111 1 π cho n khi = 1 − + − +... 90 L p trình lôgic trong Prolog subst(B, E, X, V2), reduce(E, V). Câu h i : a. Cho bi t cách trao i tham bi n h p l trong ngôn ng mô t trên ây ? Cách trao i tham bi n nào thì không th th c hi n ư c ? b. Tìm cách thay i trình Prolog trên ây có th th c hi n ư c các phương pháp trao i tham bi n khác nhau. c. Cho bi t t m v c (scope) c a các bi n là tĩnh hay ng ?10. Cho ví d m t th không nh hư ng dư i ây : arc(a,b). arc(d,f). arc(b,c). arc(f,a). arc(c,d). arc(a,b). arc(c,e). arc(h,i). arc(c,g). arc(i,j). arc(g,f). Hãy vi t hàm tìm ư ng i gi a hai nh c a th .CHƯƠNG 4C u trúc danh sách Chương này trình bày khái ni m v danh sách, m t trong nh ng c u trúc ơngi n nh t và thông d ng nh t, cùng v i nh ng chương trình tiêu bi u minh hocách v n d ng danh sách trong Prolog. C u trúc danh sách t o nên m t môitrư ng l p trình thu n ti n c a ngôn ng Prolog.I. Bi u di n c u trúc danh sách Danh sách là ki u c u trúc d li u ư c s d ng r ng rãi trong các ngôn ngl p trình phi s . M t danh sách là m t dãy b t kỳ các i tư ng. Khác v i ki u dli u t p h p, các i tư ng c a danh sách có th trùng nhau (xu t hi n nhi u l n)và m i v trí xu t hi n c a i tư ng u có ý nghĩa. Danh sách là cách di n t ng n g n c a ki u d li u h ng ph c h p trongProlog. Hàm t c a danh sách là d u ch m “.”. Do vi c bi u di n danh sách b ihàm t này có th t o ra nh ng bi u th c m p m , nh t là khi x lý các danhsách g m nhi u ph n t l ng nhau, cho nên Prolog quy ư c t dãy các ph n tc a danh sách gi a các c p móc vuông. Ch ng h n .(a,.(b,[ ])). Là danh sách [ a, b ]. Danh sách các ph n t anne, tennis, tom, skier (tên ngư i) ư c vi t : [ anne, tennis, tom, skier ]chính là hàm t : . ( anne, .( tennis, .( tom, .( skier, [ ] ) ) ) ) Cách vi t d ng c p móc vuông ch là xu t hi n bên ngoài c a m t danh sách.Như ã th y m c trư c, m i i tư ng c u trúc c a Prolog u có bi u di ncây. Danh sách cũng không n m ngo i l , cũng có c u trúc cây. Làm cách nào bi u di n danh sách b i m t i tư ng Prolog chu n ? Cóhai kh năng x y ra là danh sách có th r ng ho c không. N u danh sách r ng, nó ư c vi t dư i d ng m t nguyên t : [] 95 96L p trình lôgic trong Prolog N u danh sách khác r ng, có th xem nó ư c c u ...

Tài liệu được xem nhiều: