Contenido
- Dados dos numeros, indique el menor de ellos
- Dados dos numeros, devolver su residuo
- Dada la funcion residuo y un numero, mostrar los divisores de un numero
- Buscar un elemento en una lista
- Insertar un elemento al inicio de una lista
- Insertar un elemento al final de una lista
- Sumar todos los elementos de una lista
- Dadas dos listas, determinar si estas son iguales
- Dado un numero, devuelva su factorial
- Hacer un programa para el calculo del numero fibonacci
Dados dos numeros, indique el menor de ellos
menor(X,Y,Z) :- X>Y, Z is Y.
menor(X,Y,Z) :- Y>X, Z is X.
Z contiene el numero menor entre X e Y.
Dados dos numeros (x e y), devolver el residuo de X/Y
residuo(X,Y,Z) :- X<Y, Z is X.
residuo(X,Y,Z) :- X1 is X-Y, residuo(X1,Y,Z1), Z is Z1.
Z es la variable que contiene el residuo de dividir X/Y.
Dada la funcion residuo y un numero, mostrar los divisores de un numero
divisores(X,Y) :- Y=1.
divisores(X,Y) :- residuo(X,Y,Z), Z=0, writeln(Y,'es divisor de',X), divisores(X,Y-1).
divisores(X,Y) :- divisores(X,Y-1).
residuo(X,Y,Z) :- X<Y, Z is X.
residuo(X,Y,Z) :- X1 is X-Y, residuo(X1,Y,Z1), Z is Z1.
muestraDivisores(X) :- divisores(X,X).
En este ejercicio reutilizamos la funcion residuo del ejercicio anterior, para mostrar todos los divisores de X solo llamamos a la funcion muestraDivisores.
Buscar un elemento en una lista
pertenece(X,[M|N]) :- X=M.
pertenece(X,[M|N]) :- (X,N).
Esta funcion devuelve true o false si la variable X pertenece a la lista.
Insertar un elemento al inicio de una lista
insertaInicio(X,L,Z) :- Z is [X|L].
X es el elemento a insertar, L es la lista y Z es la nueva lista con el elemento X al inicio.
Insertar un elemento al final de una lista
insertaFinal(X,L,Z) :- L=[], Z is [X].
insertaFinal(X,[L|Lr],Z) :- insertaFinal(X,Lr,Z1), Z is [L|Z1].
X es el elemento a insertar al final, L es la lista y Z es la nueva lista con el elemento X al final.
Sumar todos los elementos de una lista
suma([H|T],Y) :- T=[], Y is H.
suma([H|T],Y) :- suma(T,Y1), Y is H+Y1.
[H|T] es la lista, Y devuelve la suma de todos sus elementos.
Dadas dos listas, determinar si estas son iguales
soniguales([M|N],[P|Q]) :- M=P, soniguales(N,Q).
soniguales(M,N) :- M=[], N=[].
Esta funcion devuelve true o false si las listas son iguales o no.
Dado un numero, devuelva su factorial
factorial(N,F) :- N>1, N1 is N-1, factorial(N1,F1), F is N*F1.
factorial(N,F) :- N=1, F is 1.
N es el numero a calcular su factoria y F es el factorial de N.
Hacer un programa para el calculo del numero fibonacci
fibo(X,N) :- X=0, N is 1.
fibo(X,N) :- X=1, N is 1.
fibo(X,N) :- X>1, fibo(X-1,N1), fibo(X-2,N2), N is N1+N2.
N devuelve el numero fibonacci de X.
No hay comentarios:
Publicar un comentario