21 tháng 2, 2015

Các bài tập đệ quy trong Prolog


Bài viết sau đây sẽ chia sẻ đến bạn các dạng bài tập đệ quy trong Prolog.

1. Tính tổng từ 1 - N

Predicates
Tong (integer, integer)
Clauses
Tong (S, 0):- write (S), !.
Tong (S, N):- S1 = S + N, N1 = N – 1,
Tong (S1, N1).
Goal
Write (“ Nhap N: “), readint (N),
Tong (0, N).

2. Kiểm tra 1 số nguyên N là chẳn hay lẻ (đệ quy trực tiếp)

Predicates
Kt (integer)
Clauses
Kt (0):- write (“So chan”), !.
Kt (1):- write (“So le”).
Kt (N):- N1=N-2,
Kt (N1).
Goal
Write (“Nhap N: “), readint (N), kt (N).

3. Tính S = 1 + ½ + … +1/N, N>0

Predicates
Tong (real, integer)
Clauses
Tong (S, 1):- write (S).
Tong (S, N):- N>0, S1 = S + (1/N), N = N – 1,
Tong (S1, N1); write (“N>0”).
Goal
Write (“Nhap n: “),readint (N),
Tong (0, N).

4. Tính S = 12 + 22 + … + N2

Predicates
Mu (integer, integer)
Tong (integer, integer)
Clauses
Mu (X, M):- M = X*X.
Tong (1, 1):- !.
Tong (N, T):- N1 = N – 1, mu (N, M),
Tong (N1, T1), T = T1 + M.
Goal
Write (“ Nhap N: “), readint (N),
Tong (N, T), write (“KQ: “, T).

5. Tính S = 1! + 2! + … + N!

Predicates
gt (integer, integer)
Tong (integer, integer)
Clauses
Gt (1, 1).
gt (X, M):- X1 = X – 1, gt (X1, M1), M = M1*X.
Tong (1, 1):- !.
Tong (N, T):- N1 = N – 1, gt (N, M),
Tong (N1, T1), T = T1 + M.
Goal
Write (“ Nhap N: “), readint (N),
Tong (N, T), write (“KQ: “, T).