Showing posts with label PROLOG PROGRAMMING. Show all posts
Showing posts with label PROLOG PROGRAMMING. Show all posts

Wednesday, May 4, 2011

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*10)+(X1),write(R),!.

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*10)+(X1),write(R),!.

PARSER IN PROLOG

% IT WORKS FOR THE PARTICULAR SENTENCE  " The, dog, barked , at ,the,cow" (give it in list).
% you can write in your own facts to implements the rules given by me.

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') ,write(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 variable1:'),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 variable1:'),read(X),Z is X**3,nl, write( Z), manage,cube.

PROGRAM TO SEE THE GREATEST COMMON DIVISIOR (GCD)

gcd(A, 0, A).
gcd(A, B, D) :- (A>B),(B>0),R is A mod B,gcd(B,R,D).
gcd(A, B, D) :- (A<B), gcd(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).