Você está na página 1de 3

.........most common prolog programs are on..........

% PROGRAM TO REVERSE A NUMBER IN PROLOG


gurpreet:- write('Enter number'),nl,read(X),Z is X mod 10, X1 is X/10, R is (Z*1
0)+(X1),write(R),!.

% PARSER IN PROLOG
sentence(A,C):-nounphrase(A,B),verbphrase(B,C).
nounphrase(A,C):-article(A,B),noun(B,C).
verbphrase(A,C):-verb(A,B),prepositionphrase(B,C).
prepositionphrase(A,C):-preposition(A,B),nounphrase(B,C).
preposition([at|X],X).
article([a|X],X).
article([the|X],X).
noun([dog|X],X).
noun([cow|X],X).
noun([moon|X],X).
verb([barked|X],X).
verb([wrinked|X],X).

% FIBONACCI SERIES IN PROLOG


fibonacci(0,1).
fibonacci(1,1).
fibonacci(A,B) :- A > 1, A1 is A - 1, A2 is A - 2, fibonacci(A1,B1), fibonacciA2
,B2), B is B1 + B2

% PROGRAM FOR THE INTERSECTION OF TWO LISTS


int([X|Y],Z,[X|D]):-member(X,Z),int(Y,Z,D).
int([X|Y],Z,D):- \+member(X,Z),int(Y,Z,D).
int([],Z,[]).

% TOWER OF HANOI PROLOG IMPLEMENTATION

towerofhanoi(1,X,Y,_):- write(' move the disk from'),write(X),write('TO') ,writ


e(Y),nl.

towerofhanoi(N,X,Y,Z):- N >1, M is N-1, towerofhanoi(M , X, Z,Y),towerofhanoi(1,


X,Y,_),towerofhanoi(M,Z,Y,X).
% PROGRAM TO REVERSE THE LIST
reverse_garry([],A,A).
reverse_garry([A|B],Z,W):- reverse_garry(B,[A|Z],W).

% PROGRAM TO FIND THE PRODUCT OF ALL THE ELEMENTS IN LIST

pro([],1).
pro([H|T],P):- pro(T,HT), P is H*HT.

% PROGRAM TO SEE THE PERMUTATIONS IN LIST ENTERED


garry(X,[X|R],R).
garry(X,[C|R],[C|S]):- garry(X,R,S).
permu_garry([],[]).
permu_garry(Z,[A|B]):- perm(B,W), garry(A,Z,W).

% A PROLOG PROGRAM TO CALCULATE MAXIMUM AND MINIMUM IN LIST


maxlist([A],A).
maxlist([A|LIST],MAX):- maxlist(LIST,MAX0),(A>=MAX0, MAX=A ; A<MAX0, MAX=MAX0).
minlist([A],A).
minlist([A|LIST],MIN):- minlist(LIST,MIN0),(A=<MIN0, MIN=A ; A>MIN0, MIN=MIN0).

% PROGRAM TO CALCULATE ELEMENTS IN LIST


callist([],0).
callist([_|T],X):- callist(T,X1), X is X1+1.
% PROGRAM TO CALCULATE UNION OF 2 LISTS
gurpreet_union([X|Y],Z,W) :- member(X,Z), gurpreet_union(Y,Z,W).
gurpreet_union([X|Y],Z,[X|W]) :- \+ member(X,Z), gurpreet_union(Y,Z,W).
gurpreet_union([],Z,Z).

% PROGRAM TO PRINT Kth ELEMENT FROM LIST


extractk(X,[X|_],1).
extractk(X,[_|T],K):- K>1,K1 is K-1, extractk(T,X,K1).

% PROGRAM TO PRINT NUMBERS IN DESCENDING ORDER


print1(0):-write('0'),!.
print1(X):-write(X),nl,N is X-1,print1(N).

% PROGRAM TO ADD 10 ELEMENTS OF LIST


% IT WILL WORK FOR 10 ELEMNTS AND TO MAKE IT WORK FOR ANY NUMBER PLACE A %NUMBER
IN PLACE OF 10 WHATR U WANT.
addlist(_,0,0).
addlist([H|T],C,X):-C1 is C-1,addlist(T,C1,X1),X is X1+H.
sum([H|T],X):-addlist([H|T],10,X).

% PROGRAM TO ADD 2 NUMBERS IN PROLOG


match(10).
manage:-nl,write('Do u wanna enter another value:'),nl,write('Enter 10 for yes:'
),nl,write('Press any key for no:'),read(K),match(K).
add:- write(' *** welcome to program ***'),nl, write('Enter the value of variabl
e1:'),read(X),write('\t\t\t Enter the value of variable2:'),read(Y),Z is X+Y,nl,
write( Z), manage.

% Program to print 10 numebrs in ASCENDING ORDER


print_my(10):-write(10),!.
print_my(X):-write(X),nl,N is X+1,print_my(N).

% PROGRAM TO CALCULATE THE CUBE OF A NUMBER


% START WITH WRITING CUDE ON COMMOND PROMPT
match(10).
manage:-nl,write('Do u wanna enter another value:'),nl,write('Enter 10 for yes:'
),nl,write('Press any key for no:'),read(K),match(K).
cube:- write(' *** welcome to program ***'),nl, write('Enter the value of variab
le1:'),read(X),Z is X**3,nl, write( Z), manage,cube.

% PROGRAM TO SEE THE GREATEST COMMON DIVISIOR (GCD)


cd(A, 0, A).
cd(A, B, D) :- (A>B),(B>0),R is A mod B,cd(B,R,D).
cd(A, B, D) :- (A<B), cd(B,A,D).

% PROGRAM TO Check a number is PRIME OR NOT


div(X,A):- N is A*A , N=<X, X mod A =:=0.
div(X,A):- A<X, A1 is A+1,div(X,A1).
check_prime(X):- A is 2, X>1, \+div(X,A).

% PROGRAM TO CALCULATE FACTORIAL OF A NUMBER


fact(0,1).
fact(P,Q):-P1 is P-1,fact(P1,Z), Q is Z*P.

Você também pode gostar