Trang chủ / Cửa Hàng / Share Code
Trong hệ chuyên gia chúng ta thường sử dụng ngôn ngữ lập trình Prolog, ngôn ngữ này thường được sử dụng trong lĩnh vực trí tuệ nhân tạo. Một chương trình Prolog là một cơ sở dữ liệu gồm các mệnh đề clause. Mỗi mệnh đề được xây dựng từ các vị từ predicat. Một vị từ là một phát biểu nào đó về các đối tượng có giá trị chân true hoặc fail. Hôm nay sharecs muốn giới thiệu tới các bạn một số mẫu bài tập căn bản để chúng mình học tập.
Bài Tập Lập Trình Prolog Cơ Bản
Viết chương trình tính tổng từ 1 đến n chia hết cho 3
%chuong trinh tinh tong tu 1 den n CHIA HET CHO 3
predicates
tong(integer,integer)
clauses
tong(1,K) :-K=0, !.
tong(N,K):-N mod 3 =0,
N1 = N - 1,
tong(N1,K1),
K=K1+N.
tong(N,K):- N mod 3 <> 0,
N1 = N -1,
tong(N1,K1),
K = K1. %truong hop nay khong cong
Viết chương trình tính tổng từ M đến N
%chuong trinh tinh tong tu M den N
predicates
tongMN (integer, integer, integer)
clauses
tongMN (M, M, M) :- !.
tongMN (M, N, K) :-
N1 = N - 1,
tongMN (M, N1, K1),
K = K1 + N.
goal
write("cho M:"),readint(M),
write("cho N:"), readint(N),
tongMN(M,N,X),
write("ket qua:",X).
Viết chương trình tính tổng các số chẵn từ 1 đến N
/* chuong trinh tinh tong cac so chan tu 1 den N */
predicates
tongchan(integer,integer)
clauses
tongchan(1,0) :- !.
tongchan(N,K):- N mod 2 = 0,
N1=N-1,
tongchan(N1,K1),
K=K1+N.
tongchan(N,K):- N mod 2 = 1,
N1 = N-1,
tongchan(N1,K1),
K = K1.
Viết chương trình tính tổng các số chia hết cho 3 từ 1 đến N
/* chuong trinh tinh tong cac so chia het cho 3 tu 1 den N */
predicates
tongba(integer,integer)
clauses
tongba(1,0) :- !.
tongba(N,K):- N mod 3 = 0,
N1=N-1,
tongba(N1,K1),
K=K1+N.
tongba(N,K):- N mod 3 <> 0,
N1 = N-1,
tongba(N1,K1),
K = K1.
goal
write("cho mot so nguyen: "),
readint(N),
tongba(N,K),
write("tong ba toi ", N),
write(" bang: ",K).
Viết chương trình tính tổng từ 1 đến N
/* chuong trinh tinh tong tu 1 den N */
predicates
tong(integer,integer)
clauses
tong(1,1):- !.
tong(N,K):- N1 = N-1,
tong(N1,K1),
K = K1+N.
Viết chương trình nhận biết số là chẵn hay lẻ
predicates
le(interger)
clauses
chan(N) :- N mod 2 = 0,
wite(N, "chan").
le(N) :- wite(N, "le").
N giai thừa
predicates
gt(interger, real)
gt(interger, real, interger, real)
clauses
gt(N, K) :- gt(N, K, 1, 1).
gt(N, K, I, P) :- I1 = I + 1,
P1 = P*I,
gt(N, K, I1, P1).
gt(N, K, N, K).
Bài tập hợp (xâu)
domains
xau = interger*
predicates
hop(xau, xau, xau)
clauses
hop([], L, L). %khi lay het gia tri thi dung
hop([N:T], L2, [N:L3]) :- hop(T, L2, L3).
Bài tập giao (xâu)
domains
xau = interger*
predicates
thuoc(xau, xau, xau)
giao(xau, xau, xau)
clauses
giao(_, _, [])
hop([], L, L). %khi lay het gia tri thi dung
hop([N:T], L2, [N:L3]) :- hop(T, L2, L3).
Bài tập giải phương trình Ax +B = C

Bài tập giải phương trình Ax +B = 0
predicates
pt(real, real)
clauses
pt(0,0) :- write("phuong trinh vo so nghiem").
pt(0,_) :- write("phuong trinh vo nghiem").
pt(A, B) :- X=-B/A,
write("Nghiem la: ", X).
goal
write("Cho gia tri A:"),
readrea(A),
write("Cho gia tri B:"),
readrea(B),
pt(A,B).
Cảm ơn các bạn đã ghé thăm. Chúc các bạn thành công!