Recursion: % Even (X) :-X 0, Y X-2, Even (Y) - % Even (X) : - Y X+2, Even (Y)
Recursion: % Even (X) :-X 0, Y X-2, Even (Y) - % Even (X) : - Y X+2, Even (Y)
LAB #5
LAB
RECURSION
Even Odd
Factorial
Display a list (upword, downword)
Find the sum of a list 1 + 2 + 3 + + n
%Lab5_1:
PREDICATES
even(integer)
CLAUSES
even(0) :- write ("It is even"), nl.
even(1) :- write ("It is Odd"), nl.
even(X):- Y=X-2, even(Y).
% even(X):- X>0, Y=X-2, even(Y).
% even(X):- Y= X+2, even(Y).
GOAL
even(20).
%Lab5_2:
PREDICATES
fac(integer,integer)
CLAUSES
fac(1,1).
fac(X,Result):- Y=X-1,fac(Y,R), Result = X * R.
GOAL
fac(5,A), write( "The fac of 5 is ", A), nl.
%Lab5_3:
PREDICATES
displaydown(integer)
CLAUSES
displaydown (1):- write(1), nl.
displaydown (X):- write(X," "), Y = X-1,
GOAL
displaydown (4).
displaydown (Y).
% 4321
[] PROLOG
LAB
%Lab5_4:
PREDICATES
displayUp (integer)
CLAUSES
displayUp (1):- write(1," ").
displayUp (X):- Y = X-1, displayUp (Y),
write(X," ").
GOAL
displayUp (4). % 1 2 3 4
%Lab5_5:
PREDICATES
sum(integer,integer)
CLAUSES
sum(1,1).
sum(X, Result):- Y = X-1, sum(Y,R), Result = X + R.
GOAL
sum(4, A), write( "The sum of 4+3+2.. is ", A), nl.
%Lab5_6: Write a Prolog program to sum 'n' integers and find their average.
predicates
go
sum( integer , integer , integer )
avg( integer )
clauses
go :- write("Enter the number of values : "), readint( N ), avg( N ).
avg ( N ) :- N1 = N, S = 0, sum( N1 , S , N ).
sum( 0 , S , N ) :- A = S / N, write("The sum is : ", S ),nl,
write("The Average is : ", A ), nl.
sum( N1 , S , N ) :- write("Enter the values : "), readint(X),
SS = S + X, NN = N1 - 1, sum( NN , SS , N ).
goal
go.
-------------------------------------------------------------------------------------------------------------------------Dr Mohammed Fadhl
2