Laboratorio - 6 Ejercicio
Laboratorio - 6 Ejercicio
Laboratorio - 6 Ejercicio
nondeterm concatenar(l1,l1,l1)
nondeterm inifin(l1,num,num)
clauses
concatenar([],A,A).
concatenar([A|B],X,[A|C]):-concatenar(B,X,C).
invertir([A],[A]).
invertir([A|B],C):-invertir(B,D), concatenar(D,[A],C).
inifin([X|Y],B,C):-G=[X|Y],write(G),nl,B=X,invertir(Y,[Q|_]),C=Q.
goal
inifin([10,5,04,7,8,6],INICIO,FIN).
6 Aadir un elemento en una lista por la parte final. add2(5,[a,b,c,d],NL). NL->[a
,b,c,d,5]
domains
l1=integer*
predicates
nondeterm concatenar(l1,l1,l1)
clauses
concatenar([],A,A).
concatenar([A|B],X,[A|C]):-concatenar(B,X,C).
goal
concatenar([5,4,7,565],[3,5,8],X).
7 Eliminar el ltimo elemento de una lista.
domains
l1=integer*
predicates
nondeterm invertir(l1,l1)
nondeterm concatenar(l1,l1,l1)
nondeterm eliminar(l1,l1)
clauses
concatenar([],A,A).
concatenar([A|B],X,[A|C]):-concatenar(B,X,C).
invertir([A],[A]).
invertir([A|B],C):-invertir(B,D), concatenar(D,[A],C).
eliminar(Z,X):-invertir(Z,A),A=[_|W],invertir(W,X).
goal
eliminar([10,5,04,7,8,6],X).
8 Elaborar un programa en PROLOG que genera una lista de N nmeros positivos.
domains
i=integer
predicates
10 Dada una lista de nmeros, escribir los predicados PROLOG necesarios para halla
r el elemento mnimo y el mximo.
nondeterm pos_y_neg(listanumeros,listanumeros,listanumeros).
clauses
pos_y_neg([A],[B],[C]).
pos_y_neg([N|RL1],[N|RL2],L3) :N >= 0, !,
pos_y_neg(RL1,RL2,L3).
pos_y_neg([N|RL1],L2,[N|RL3]) :% N < 0,
pos_y_neg(RL1,L2,RL3).
goal
pos_y_neg([3,-1,9,0,-3,-5,-8],Pos,Neg).
12 Escribir un programa en prolog que lea una secuencia de 10 nmeros como mximo y
los almacene en una estructura de tipo lista. El programa debe devolver la lista
inversa.
v = { 8, 4, 2, 6, 0, 1, 7, 6, 6, 5 }
v-1 = { 5, 6, 6, 7, 1, 0, 6, 2, 4, 8 }
domains
nro=integer
lista=nro*
predicates
nondeterm ingreso(nro,lista)
nondeterm leer
clauses
ingreso(0,[]).
ingreso(N,L):-N1=N-1, ingreso(N1,L1),
write("Ingrese Numero= "), readint(E), L=[E|L1].
leer:-write("Ingrese Cantidad Nmeros= "),readint(N),11>N, ingreso(N,L),
write("Lista ","\n",L),nl.
goal
leer.