Приклади

Приклад_1

domains
  chislo,factorial=integer
predicates
  fact(chislo,factorial)
clauses
  fact(1,1).
  fact(X,Y):-X>1,
  Z=X-1,
  fact(Z,X1),
  Y=X1*X.

Приклад_2

domains
  a,b,d=integer
predicates
  find_nds
  nds(a,b,d)
goal
  find_nds.
clauses
  find_nds:-
    write("Vvedit 2 thusla:"),nl,
    write("a="),readint(A),
    write("b="),readint(B),
    nds(A,B,D),
    write("NSD (",A,",",B,")=",D).
  nds(A,B,D):-A=B,D=A,!.
  nds(A,B,D):-A>B,X=A-B,nds(X,B,D),!.
  nds(A,B,D):-X=B-A,nds(A,X,D).

Приклад_3

domains
  a,b,d=integer
predicates
  find_nsk
  nds(a,b,d)
  nsk(a,b,d)
goal
  find_nsk.
clauses
  find_nsk:-
     write("Vvedit 2 thusla:"),nl,
     write("a="),readint(A),
     write("b="),readint(B),
     nds(A,B,D),
     write("NSK (",A,",",B,")=",D),
     nsk(A,B,D),
     write("NSK(",A,",",B,")=",D).
   nds(A,B,D):-A=B,D=A,!.
   nds(A,B,D):-A>B,X=A-B,nds(X,B,D),!.
   nds(A,B,D):-X=B-A,nds(A,X,D).
   nsk(A,B,D):-nds(A,B,D1),D=(A*B) div D1.
   
Приклад_4

domains
  n,suma=integer
predicates
  sum(n,suma)
goal
  write("Vvedit verhnu mezy (parne N>=2) "), readint(N),sum(N,S),
  write("Syma ryady vid 2 do ",N," krok 2:"),nl,
  write("S(",N,")=",S).
clauses
  sum(2,2).
  sum(N,S):-N>2,N1=N-2,sum(N1,S1), S=S1+N.
Приклад_5

domains
  n,suma=integer
predicates
  sum(n,suma)
goal
  write("Vvedit verhnu mezy (neparne N>=1) "), readint(N),sum(N,S),
  write("Syma ryady vid 1 do ",N," krok 2:"),nl,
  write("S(",N,")=",S).
clauses
  sum(1,1).
  sum(N,S):-N>1,N1=N-2,sum(N1,S1),S=S1+N.
Приклад_6

domains
  x,y=integer
predicates
  f(x,y)
clauses
  f(1,1):-!.
  f(3,3):-!.
  f(X,Y):-X mod 2=0,X2=X div 2,f(X2,Y),!.
  f(X,Y):-
        X mod 4=1,X1=(X-1) div 2,X3=X1 div 2, X2=X1+1,f(X2,Y1),
        f(X3,Y2),Y=2*Y1-Y2,!.
  f(X,Y):-
        X mod 4=3, X1=(X-3) div 2, X3=X1 div 2, X2=X1+1, f(X2,Y1),
        f(X3,Y2), Y=3*Y1-2*Y2.
Приклад_7

predicates
   a(integer,integer,integer)
clauses
   a(N,M,Y):-M=0,Y=N+1,!.
   a(N,M,Y):-N=0,M>0,M1=M-1,A(1,M1,Y),!.
   A(N,M,Y):-N1=N-1,M1=M-1,a(N1,M,Y1), a(Y1,M1,Y).

Приклад_8

domains
  name = symbol
predicates
  father(name,name)
  mother(name,name)
  parents(name,name)
  woman(name)
  man(name)
  grandfather(name,name)
  grandmother (name,name)
  ancestor(name,name)
clauses
  father("Illya","Kateruna").
  father("Mukola","Illya").
  mother("Kateruna","Mariya").
  mother("Kateruna","Andriy").
  mother("Mariya","Gnat").
  woman("Kateruna").
  woman("Mariya").
  man("Illya").
  man("Andriy").
  man("Mukola").
  man("Gnat").
  parents(X,Y):-
     father(X,Y),man(X);
     mother(X,Y),woman(X).
  grandfather(X,Y):-
     father(X,Z),parents(Z,Y).
  grandmother(X,Y):-
     mother(X,Z),parents(Z,Y).
  ancestor(X,Y):-parents(X,Y).
  ancestor (X, Y):-
     parents(X,Z),ancestor(Z,Y).

Комментариев нет:

Отправить комментарий