¿Te gustaría aprender Diseño Web?
Tenemos los cursos que necesitas.¡Haz clic aquí!


Iniciando mi sección de Programación Lógica en el IDE Swi-prolog, donde ire publicando ejercicios resueltos implementados en Prolog. En esta ocasion les voy a compartir ejercicios relacionados con la Sucesión de Fibonacci, Potencia y Factorial de un numero.

Sucesion de Fibonacci:

La Sucesión de fibonacci es una sucesión infinita de números, donde cada termino esta dado por la suma de los dos anteriores, empezando en 1,1, y luego la sumas.,

1,1,2,3,5,8,13,21,34,..

y bueno sin mas redondeo aqui el código, en la compilacion  ingresamos el N° de Termino que deseamos mostrar. ejemplo:  fibonacci(7,X).

  1. % Autor:  TecGurus
  2. % Fecha: 16/04/2018
  3. fibonacci(0,0).
  4. fibonacci(1,1).
  5. fibonacci(N,Y):-N>1,
  6. N1 is N1,
  7. fibonacci(N1,Y1),
  8. N2 is N2,
  9. fibonacci(N2,Y2),
  10. is Y1+Y2.

Ejercicio propuesto:

Usando recursividad, listar y sumar la serie de Fibonacci  

Usaremos una regla con 3 argumentos a la que llamaremos serieFibonacci(X,L,S), donde X sera la cantidad de terminos que queremos mostrar, L la lista con los terminos y S la suma de todos los terminos.

  1. % Autor: TecGurus
  2. % Fecha: 29/05/2018
  3. % usando recurswividad listar, sumar la serie de fibonacci
  4. concatenar([],L,L).
  5. concatenar([A|Ca],L2,[A|Cc]):- concatenar(Ca,L2,Cc).
  6. fibonacci(0,0).
  7. fibonacci(1,1).
  8. fibonacci(N,Y):-N>1,N1 is N1,fibonacci(N1,Y1),N2 is N2,fibonacci(N2,Y2),is Y1+Y2.
  9. serieFibonacci(0,[0],0).
  10. serieFibonacci(1,[1],1).
  11. serieFibonacci(Nt,L,S):- Nt>1,fibonacci(Nt,P),N1 is Nt1,serieFibonacci(N1,Ls,Ss),concatenar(Ls,[P],L),is Ss+P.
  12.  

Consultamos ?- serieFibonacci(5,L,S).

Respuesta:

L=[1,1,2,3,5].

S=12.

Factorial de un numero:

  1. %—– factorial ——
  2. factorial(0,1).
  3. factorial(N,_):- N<0,!,fail.
  4. factorial(N,F):-mayor(N,0), diferencia(N,1,N1),
  5.                factorial(N1,F1), producto(N,F1,F).
  6. mayor(X,Y):- X>Y.
  7. diferencia(X,Y,Z):- Z is XY.
  8. producto(X,Y,Z):- Z is X*Y.

Potencia de un Numero:

  1.  Autor: TecGurus
  2. % Fecha: 17/04/2018
  3.  potencia(A,0,1):- A =\=0.  % validamos que A se a diferente de 0 pues 0^0 es indeterminado.
  4.  potencia(X,Y,):- Y>0,Y1 is Y1,     %regla de potencia ejemplo potencia(3,2,X).  Rpta=9
  5.                     potencia(X,Y1,P1 ),
  6.                     P is X*P1.

Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.

¿Te gustaría aprender Diseño Web?
Tenemos los cursos que necesitas.¡Haz clic aquí!
About Author

NGuerrero

0 0 votos
Article Rating
Suscribir
Notificar de
guest
0 Comments
Comentarios.
Ver todos los comentarios
0
¿Te gusta este articulo? por favor comentax
()
x
Abrir chat
¿Quieres aprender a programar?
Hola 👋,
¿Te interesa información de nuestros cursos?