BÀI TẬP KIỂM TRA GIỮA KỲ Môn học Lập trình Logic và ràng buộc Học viên Nguyễn Duy Quốc Thái 1 Viết chương trình find max và find min tìm Min và Max của hai số? 2 Tìm phần tử Tìm phần tử cuối cùng của.
BÀI TẬP KIỂM TRA GIỮA KỲ Mơn học Lập trình Logic ràng buộc Học viên: Nguyễn Duy Quốc Thái Viết chương trình find_max find_min tìm Min Max hai số? Tìm phần tử - Tìm phần tử cuối danh sách: ?- member( c, [ a, b, c ] ) Yes Tìm phần tử kề cuối danh sách? (phần tử cuối thứ 2): Tìm phần tử thứ K danh sách: ? - member_at(X, [a, b, c, d], 2, R) X=b R = [a, c, d] - Tìm số phần tử danh sách? ?- length( [ a, b, c, d, e ], L ) L=5 Yes ?- length( [ a, [ b, c ], d, e ], N ) N=4 Yes Đảo ngược danh sách? Tìm xem danh sách có phải palindrome hay khơng? Một palindrome đọc phía trước phía sau; ví dụ: [x, a, m,a, x] ?- palindrome([ x, a, m, a, x ]) Yes Loại bỏ phần tử danh sách trùng lặp liên tiếp? Ví dụ: :? - remove([a, a, a, a, b, c, c, a, a, d, e, e, e, e], X) 1X = [a, b, c, a, d, e] Đóng gói phần tử danh sách trùng lặp liên tiếp thành danh sách con? Ví dụ: :? - pack([a, a, a, a, b, c, c, a, a, d, e, e, e, e], X) X = [[a, a, a, a], [b], [c, c], [a, a], [d], [e, e, e, e]] Sao chép phần tử danh sách? Ví dụ: :? - Dupli([a, b, c, c, d], X) X = [a, a, b, b, c, c, c, c, d, d] Nhân đôi phần tử danh sách số lần định? Ví dụ: :? - Dupli([a, b, c], 3, X) X = [a, a, a, b, b, b, c, c, c] Bỏ phần tử thứ N khỏi danh sách? Ví dụ: :? - drop([a, b, c, d, e, f, g, h, i, k], 3, X) X = [a, b, d, e, g, h, k] 10 Chia danh sách thành hai phần; chiều dài phần cho? Ví dụ: :? - split([a, b, c, d, e, f, g, h, i, k], 3, L1, L2) L1 = [a, b, c] L2 = [d, e, f, g, h, i, k 11.Xóa phần tử K khỏi danh sách? Ví dụ: ? - remove_at(X, [a, b, c, d], 2, R) X=b R = [a, c, d] Mơn học: Lập trình logic ràng buộc Bài : + Tìm Max: X max X >= Y ngược lại find_max(X,Y,X):-X>=Y find_max(X,Y,Y):-X