miércoles, 14 de enero de 2015

Ejercicios Capitulo 3

1. Escriba una meta, usando concat, para eliminar los tres últimos elementos de una lista
L produciendo otra lista L1. Recomendación: L es la concatenación de L1 y una lista de
tres elementos.

3. Defina la relación:
ultimo( Elemento, Lista)
de tal modo que Elemento sea el último elemento de la lista Lista. Escriba dos versiones:
(a) usando la relación concat, y (b) sin usarla.


PREGUNTEMOS:

1 ?- ultimo(d,[a,c,e,f,d,f]).
false.

2 ?- ultimo(a,[d,e,g,h,f,a]).
true .

3 ?- ultimo(a,[a,a,a,a,a,a,a,a]).
true .

4 ?- ultimo(6,[2,3,4,5,1,7,6,2]).
false.

5 ?- ultimo(darwin,[marco,luis,lorenzo,antonio,daniel]).   //son mis amigos xD
true .


3.4. Aritmética.


1. Defina la relación max(X,Y,Max) de tal modo que Max sea< el mayor valor de los
dos números X y Y.
max(X,Y,Max).
max(X,Y,Max):-X<Max,Y<Max.


2. Defina el predicado maxlist(List, Max) de tal manera que Max sea el mayor
número de la lista List de números.
maxlist(List,Max).
maxlist(List,Max):-Max>List.


3. Defina el predicado sumlist(List, Sum) donde Sum es la suma de una lista de
números dada en List.
sumlist(List,Sum).
List([X,Y,Z]).
sumlist(List,Sum):-X is Y is Z=:=Sum.


4. Defina el predicado ordenada(List) el cual es cierto (devolverá yes) si List es una
lista ordenada de números en forma ascendente o descendente, por ejemplo,
?- ordenada(1,5,6,6,9,12).
Yes
ordenada(List).
List(X,Y,Z).
ordenada(List):-X<Y<Z=:=ascendente.
ordenada(List):-X>Y>Z=:=descendente.

5. Defina el predicado subsum(Set, Sum, Subset) donde Set es una lista de números,
Subset es un subconjunto de esta lista y Sum es la suma de los números en
Subset. Por ejemplo,
?- subsum([1,2,5,3,2], 5, Sub).
Sub = [1,2,2];
Sub = [2,3];

Sub = [5];
subsum(set,Sum,Subset).
subsum(Set,Sum,Subset):-Set=:=[X,Y,Z],Sum=:= Y,Subset=:=Sub.















No hay comentarios:

Publicar un comentario