Está en la página 1de 2

PARADIGMAS DE PROGRAMACIÓN Universidad Tecnológica Nacional

Facultad Regional Mendoza

PARADIGMA LÓGICO: PROLOG


HECHOS Y REGLAS

Definir los hechos y reglas para calcular los siguientes predicados:

1. par(N) evalúa como verdadero, si N es un número par (resolver sin usar ‘mod’)

2. suma(N, S) donde S es la sumatoria de los primeros N números naturales pares

3. potencia(B, E, V) hallar V que es el valor de la potencia de B elevado a la E

4. fibonacci(N, R) hallar R que es el valor del enésimo término dado por N

5. Definir los siguientes hechos y luego la regla que calcula el circuito, donde S es el valor de salida:
and(Q1, Q2, S)
or(Q1, Q2, S)
not(Q, S)
circuito(Q1, Q2, S)

6. Definir los siguientes hechos y reglas, para buscar la enfermedad que tiene una persona:
HECHOS:
sintoma(P, S)
enfermedad(E, S)
REGLA:
diagnostico(P, S, E) P: persona, E: enfermedad, S: síntoma

TRATAMIENTO DE LISTAS

Definir los hechos y reglas para calcular los siguientes predicados:

7. predecesor(L, R) donde R contiene los elementos de la lista L que son iguales o mayores que su
predecesor (el primer elemento siempre aparece en el resultado)

8. rotada(L, N, P) donde P es la lista L rotada hacia la izquierda N posiciones

9. suma(S, L) donde S es la sumatoria de los valores de la lista L

10. cantidad(L, N) donde N es la cantidad de elementos de la lista L

11. ultimo(L, U) donde U es el último elemento de la lista L

12. inversa(L, I) donde I es L invertida

13. sacar(P, L, R) donde R es la lista L sin el elemento que ocupa la posición P

14. eliminar(L, E, R) donde R es la lista L sin el elemento E (suponer una sola ocurrencia)

15. eliminar(L, E, R) idem anterior pero eliminado todas las instancias de E

16. intersec(L1, L2, L3) donde L3 es la intersección de L1 con L2

17. rotarIzq(L, N, R) donde R es la lista resultante de rotar los elementos de L, N posiciones a la izquierda

18. insertarEn(E, L, P, R) donde R es el resultado de insertar el elemento E, en la posición P de la lista L

GUÍA DE TRABAJOS PRÁCTICOS 6


PARADIGMAS DE PROGRAMACIÓN Universidad Tecnológica Nacional
Facultad Regional Mendoza

19. insOrden(E, O, D) insertar el valor E en la lista ordenada O, da como resultado la lista ordenada D

20. ordenada(L, O) donde O es la lista L ordenada (usar insOrden)

ESTRUCTURAS DE DATOS

21. Definir el árbol de la derecha, donde cada nodo sea un functorpersona(nombre, dni, edad), e implementar las
reglas para:
Mostrar todos los descendientes de un nodo.
Mostrar todos los ascendientes de un nodo.

22. parejas(L1, L2, L3) donde L1, L2 son listas de la misma longitud (sino debe fallar), y L3 es la lista de
duplas formada con los elementos de aquellas.

23. Definir la base de datos de personas mediante el functor(nombre, teléfono, sexo, edad), e implementar los
siguientes predicados:
 Buscar si una persona existe.
 Mostrar todas las personas.
 Mostrar todas las mujeres.
 Mostrar todos los varones mayores de 21 años.
 Definir la relación casado con teléfono.
 Definir la relación de visita de una persona a otra.
 Mostrar los casados.
 Indicar para sirve: c(X) if casado(X, Y), visita(Y, Z), persona(Z, _, m).

24. Definir el siguiente grafo:


Indicar si existe o no un camino entre dos ciudades.
Determinar la distancia entre dos ciudades.
Mostrar los nombres de las ciudades por la que se pasa
al buscar camino (usar write).

GUÍA DE TRABAJOS PRÁCTICOS 7

También podría gustarte