viernes, 26 de julio de 2013


César Andrés Ruiz Saltos

Los siguientes ejercicios que veremos a continuación son para prolog  y ya han sido probados

 

1._ Solo determina si lo que recibe es una lista

lista([]):-!.
lista([X|Y]):-lista(Y).

 

2._ Concatena dos listas un ejemplo muy básico dentro de la programación

concatenar([],L,L).
concatenar([X|M],L,[X|Z]):-concatenar(M,L,Z).



3._Calcula la longitud de la lista algo muy útil para futuras creación y combinaciones con otros programas

long([],0):-!.
long([X|Y],S):-long(Y,T),!, S is T + 1.



4._Suma los elementos de la lista, este es otro de los mas usados cuando aprendemos a desarrollar nuestra lógica y muy útil

suma_elem([X],X):-!.
suma_elem([X|Y],S):-suma_elem(Y,T), S is T + X.



5._Invierte una lista en todos sus niveles aquí veremos que usaremos la parte de concatenar para poder realizar la invertida

invertir_tot([],[]):-!.
invertir_tot([X|M],S):-lista(X),invertir_tot(X,P),invertir_tot(M,T),concatenar(T,[P],S).
invertir_tot([X|M],S):-invertir_tot(M,T),concatenar(T,[X],S),!.



6._Muestra los últimos n elementos de la lista, simplemente  lo que deseamos ver

da_n_ultim(L,N,S):-invertir_tot(L,T),da_n_pri(T,N,R),invertir_tot(R,S).

 

7._ Elimina los elementos repetidos que estén en una lista

elim_repet([],[]):-!.
elim_repet([X|M],S):-not lista(X), elimina_x(M,X,T),elim_repet(T,Y),
             concatenar([X],Y,S).
elim_repet([X|M],S):-lista(X), elim_l1_de_l2(X,M,T),elim_repet(X,Y),    
             elim_repet(T,J),concatenar([Y],J,S).

8._ Determina si una lista se encuentra en orden creciente o decreciente ósea de mayor a menor o de menor a mayor


creciente([X,Y|Z]):- X

             creciente([Y|Z]).
creciente([X]).

decreciente([X,Y|Z]):- X>Y,
               decreciente([Y|Z]).
decreciente([X]).


9._Calcula la potencia de un número, N elevado a la N1 donde n será la base y n1 será el exponente

potencia(0,0,'No se puede calcular'):-!.
potencia(N,0,1):-N=\=0.
potencia(N,N1,S):-N2 is N1 -1,potencia(N,N2,R),!, S is R*N.



10.- Determina si un elemento X pertenece a una lista

pert(X,[X|M]):-!.
pert(X,[R|M]):-pert(X,M).





 
 
 
 
 
 
 

No hay comentarios: