Tecnico

Páginas: 4 (822 palabras) Publicado: 30 de mayo de 2013
Lista de Ejercicios: Programación No Procedural
Profesor: Alejandro T. Bello Ruiz

/* A continuación se presentan 6 ejemplos y se dejan 7 ejercicios. En base a estos 10 ejercicios
se tomarála PC1 */

domains
linteger = integer*
predicates
nondeterm nelemento(integer,linteger,integer)
nondeterm pertenece(integer,linteger)
nondeterm noduplicados(linteger,linteger)sucesion(linteger)
nondeterm divideN(integer,linteger,linteger,linteger)
nondeterm elimina(integer,linteger,linteger)
nondeterm posiciones(integer,linteger,linteger)
nondetermposiciones2(integer,integer,linteger,linteger)
clauses

/* Escriba las cláusulas de un predicado en Prolog que devuelva el elemento enésimo de una lista de enteros. Considere que siempre se puede encontrar elelemento. Por ejemplo

nelemento(4,[5,4,3,2,1],E).
E = 2
*/

nelemento(1,[X|_],X).
nelemento(N,[_|Xs],E):-N>1,N1= N-1,nelemento(N1,Xs,E).

/* Escriba en Prolog un predicado connombre noduplicados que recibe una lista de enteros y devuelve la lista sin elementos duplicados. En caso de que no existieran duplicados, se debe devolver la misma lista. La lista debe estar ordenada.*/pertenece(X,[X|_]).
pertenece(X,[Y|Ys]):- XY,pertenece(X,Ys).

noduplicados([],[]).
noduplicados([X|Xs],L):- noduplicados(Xs,L1), pertenece(X,L1),L=L1.
noduplicados([X|Xs],L):-noduplicados(Xs,L1),not(pertenece(X,L1)),L=[X|L1].

/* Escriba un predicado en Prolog que reciba una lista de por lo menos 3 elementos y verifica que cada elemento es la suma de los dos anteriores apartir del tercero.

Por ejemplo:

sucesion([3,2,5,7,12,19,31])
yes
sucesion([2,1,3,4,7,12]).
no
*/

sucesion([_,_]).sucesion([X,Y,Z|Resto]):-Z=X+Y,sucesion([Y,Z|Resto]).




/*Implementar el predicado divideN(Numero, Lista, L1,L2) que divide a Lista en dos listas: L1 contienen los elementos de Lista hasta la posición N y en L2 el resto...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tecnica
  • Tecnico
  • Tecnicas
  • Tecnicas
  • Tecnico
  • Tecnicas
  • Tecnico
  • Tecnico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS