GUÍA DE EJERCICIOS PRÁCTICOS...

11
GUÍA DE EJERCICIOS PRÁCTICOS 2015 Ing. José Oscar Mugetti Mare PARADIGMA LOGICO

Transcript of GUÍA DE EJERCICIOS PRÁCTICOS...

Page 1: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

GUÍA DE EJERCICIOS PRÁCTICOS

2015

Ing. José Oscar Mugetti Mare

PARADIGMA LOGICO

Page 2: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 1 / 10

TRABAJO PRÁCTICO 1

1. Evalúa las siguientes expresiones y clasifícalas en átomos, variables, símbolos predicativos negados y no negados y conectivos: a. Raquel b. 3200 c. d. a, b, c, e. A, B, C,

f. come (josé, pan) g. h. san francisco i. , j. ~juega(carlos, fútbol)

2. Para el cálculo de predicados deben considerarse equivalencias consideradas básicas, deberá determinarlas:

Expresión Equivalencias

a. ~(~X1)

b. X1 X2

c. ~(X1 X2)

d. ~(X1 X2)

e. X1 X2

f. X1 X2

g. X1 (X2 X3)

h. X1 (X2 X3)

i. X1 (X2 X3)

j. X1 (X2 X3)

k. X1 X2

3. Dados los siguientes predicados: padre (X, Y) X es el padre de Y

madre (X, Y) X en la madre de Y

femenino (X) X es femenino

masculino (X) X es masculino

Defina las relaciones para:

a. hermanos b. hermanas c. nieto d. primo e. descendiente

4. A partir de los siguientes predicados: padre (padre, hijo)

madre (madre, hijo)

casados (hombre, mujer)

lindo (X)

Page 3: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 2 / 10

y considerando los siguientes hechos:

juan es padre de marcelo y maría

miriam es la madre de ricardo

raul es el padre de sergio

marcelo es el padre de raul y rita

rita es la madre de victor y verónica

miriam y rita son lindas

Se desea extrar las siguientes respuestas:

a. Quién es el abuelo de víctor b. Quién es el nieto de raúl c. Quién es la hermana de víctor d. Quién es la hermana de verónica e. De quién es hija verónica f. Quién está casado con alguien linda g. Qué relación familiar tienen las personas lindas h. Quiénes son tíos y cuales son sus sobrinos

Se debe escribir un programa capaz de responder a las interrogaciones anteriores

5. Plantear el siguiente problema en cláusulas de Horn:

Un dragón es feliz si todas sus crías pueden volar

Los dragones verdes pueden volar

Un dragón es verde si al menos uno de sus progenitores es verde, en

cualquier otro caso es rosa.

Demostrar a través de inferencias:

a. Que los dragones verdes son felices

b. Que debería ser un dragón rosa para ser feliz

Page 4: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 3 / 10

TRABAJO PRÁCTICO 2

1. Considerando los siguientes predicados:

Persona (nombre, edad, sexo)

Mayor_edad (nombre, sexo)

Y sabiendo que:

Juan tiene 20 años

Pedro tiene 30 años

Luis tiene 28 años

Ana tiene 10 años

Alejandra tiene 43 años

Jorge tiene 60 años

... ingresar 10 más

a. Escribir un programa que permita identificar a las personas mayores de edad,

identificándolas como hombres y mujeres (recordar la mayoría a los 21 años)

b. Escribir un programa que permita identificar a las personas de mayor edad en

cada uno de los sexos.

2. A partir de los siguientes predicados:

Persona (nombre, sexo)

Amistad (nombre, nombre)

Sospechoso (nombre)

Y considerando:

Bárbara es amiga de Juan

Bárbara es amiga de Roberto

Bárbara es amiga de María

Susana es amiga de Juan

Susana es amiga de Pedro

Se debe escribir un programa en turbo prolog que permita individualizar a los

sospechosos del asesinato de susana. Para ello debemos considerar como sospechoso:

a. Los hombres que tuvieron amistad con Susana

b. Las mujeres que tuvieron relación con hombres que Susana conocía

c. Los amigos de mujeres que tuvieron relación con hombres que Susana

conocía.

3. Dado la siguiente situación, un jurado debe determinar el orden de llegada de los

corredores de una carrera, pero por una extraña razón los corredores manifiestan

lo siguiente:

Antonio: “Yo no he llegado último”

Bernardo: “Carlos ha llegado tercero”

Carlos: “Antonio ha llegado inmediatamente después de Ernesto”

Daniel: “Ernesto ha llegado en segundo lugar”

Page 5: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 4 / 10

Y

X Z

d

c a

b e

Ernesto: “Daniel no ganó la carrera”

Carlos: “Llegó después de Antonio”

Se logrado determinar que los dos primeros mienten y los otros no. ¿Podremos ayudar

al jurado a determinar el orden de llegada de los corredores?.

4. En base a las siguientes afirmaciones:

Todo hongo es una seta o un champignon.

Todo boletus es un hongo.

Todas las setas son venenosas.

Ningún boletus es un champignon.

Se pide realizar un programa en Turbo-prolog que determine cuáles son los hongo

posibles de ser comidos.

5. Resuelva a través de Turbo-Prolog el siguiente problema:

Antonio y Miguel son socios del Club Alpino.

Todo socio del Club Alpino que no es un esquiador es un escalador de

montañas.

A los escaladores de montañas no les gusta la lluvia.

Si a alguien no le gusta la nieve no es un esquiador.

A Miguel le disgusta todo lo que a Antonio le gusta, y le gusta todo lo que

a Antonio le disgusta.

A Antonio le gusta la lluvia y la nieve.

Plantear el siguiente objetivo: Existe algún socio del Club Alpino que sea escalador de

montañas pero no esquiador, ¿Quien?.

6. Deberá realizar un programa en turbo-prolog que determine identificar arcos:

Ejemplo: Objetivo identificar arcos: Arco: sucesión de bloques que forman un

dintel y dos columnas.

Dictaminar si hay algún arco formado por estos bloques:

Y= dintel

X= pilar (este es un arco)

Z= pilar

Ejercicios:

a.

b.

d

b

a

e

c

Page 6: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 5 / 10

TRABAJO PRÁCTICO 3

1. Dado un mapa como el siguiente, en el cual se indican las ciudades, las distancias

entre ellas y cuantos kilómetros son de camino de tierra (la cantidad entre

paréntesis). Se le solicita que construya un programa PROLOG, cuyo predicado

permita indicar de cuantos caminos alternativos se disponen para realizar el

recorrido entre dos ciudades y cuáles son sus distancias indicando cuántos de

éstos kilómetros son de tierra para cada recorrido.

2. El objetivo del presente es poder llegar al tesoro de manera segura, para ello

deberá definir la ruta desde la entrada al tesoro, sabiendo que los predicados

pueden ser definidos de la siguiente manera:

GALERIA(caverna,caverna)

VECINAS(caverna,caverna) (unidas por una galería)

PELIGRO(caverna) (Los peligros son las cavernas de: Alarma, Ladrones y Monstruos

RUTA(caverna,caverna)

Estos son solamente ejemplos, Ud. puede utilizar los mismos o bien definir unos

nuevos.

El formato aproximado del laberinto sería el siguiente

E

A

B

D C

2 (0)

5 (2)

6 (3)

10 (4)

4 (1)

2 (2)

2 (2)1(0)

6 (1)

3 (1)

GALERÍA

CAVERNA

ENTRADA

LADRONES ALARMAS

FUENTE GALERÍA GALERÍA

GALERÍA

CAVERNA

MONSTRUOS

COMIDA

TESORO

Page 7: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 6 / 10

TRABAJO PRÁCTICO 4: Listas

1. Ingresando un número real y su factorial, deberá responder verdadero si corresponde, caso contrario falso.

2. Hallar el factorial de un número real. 3. Hacer una notación para separar a cabeza de la cola de la lista: a través del

símbolo "|". Así, la lista [a,b,c] es [a|[b,c]]. 4. Hallar los elementos que corresponde a la intersección de dos listas ingresadas 5. Encontrar el máximo elemento de una lista 6. Hallar la longitud de una lista 7. Sumar los elementos de una lista 8. Determinar si un elemento es miembro de una lista 9. Eliminar un elemento de una lista 10. Ordenar los elementos de una lista de enteros 11. Concatenar dos listas 12. Hallar el n-esimo elemento de una lista 13. Invertir una lista 14. Recorrer un árbol, formando una lista con los nodos que se visitan 15. Determinar si un elemento aparece en un árbol 16. Dada una lista y un elemento, obtener una lista que no contenga dicho elemento

Page 8: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 7 / 10

TRABAJO PRÁCTICO 5: Programación avanzada (opcional)

1. Definir un predicado Hanoi (N, A, B, C, Movin) que resuelva el problema de la torre de Hanoi, con N discos, pasándolos de A a B usando C como auxiliar y siendo Movim la secuencia de movimientos realizados.

2. Escribir un programa lógico para resolver el problema de las "ocho reinas". Esto es determinar las formas en que pueden colocarse ocho reinas en un tablero de ajedrez de modo que no se amenacen mutuamente.

3. Escribir un programa de lógica para resolver el siguiente problema: Tres misioneros y tres caníbales están en la orilla izquierda de un río. Hay un bote

para cruzar el río, con capacidad a lo sumo para dos personas. Todos deben cruzar

el río. Si en algún momento en una de las orillas quedan más misioneros que

caníbales, éstos serán convertidos por aquellos. Encontrar modos de transportar

los misioneros y caníbales a través del río sin exponer ningún caníbal al peligro de

la conversión.

4. Escribir un programa de lógica para resolver el siguiente problema: Hay tres hombres: Juan, Pedro y José, cada uno de los cuales tiene dos

profesiones. Sus ocupaciones son las siguientes: chófer, contrabandista de licores,

músico, pintor, jardinero y barbero.

En base a los siguientes hechos determínese el par de profesiones que corresponde

a cada hombre:

El chófer ofendió al músico riéndose de su cabello largo.

El músico y el jardinero solían ir a pescar con Juan.

El pintor compró al contrabandista un litro de ginebra.

El chófer cortejaba a la hermana del pintor.

Pedro debía $ 5 al jardinero.

José venció a Pedro y al pintor jugando al tejo.

Page 9: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 8 / 10

EJERCICIOS PROPUESTOS (Parciales de otros años)

2011

1. Una familia real, debe abdicar a favor de uno de sus hijos, como los miembros reales no se

encuentran en el país, la corte debe indicar su sucesor los requisitos son que el próximo

rey debe ser el hijo varón, mayor de edad y que tenga conocimiento de política exterior o

ciencias políticas.

Los hijos que tuvo el matrimonio real, su edad y los estudios cursados por ello son:

María de 37 años y estudió ciencias políticas.

Roberto 29 años y estudió economía.

Marita de 33 años y estudió política exterior.

Raul de 30 años y estudió abogacía.

Perla de 26 años y estudió ingeniería.

Oscar de 23 años y estudió política exterior.

Debe realizar un programa en prolog para determinar el sucesor del trono y que cumpla

con todos los requisitos impuestos.

2. Nos encontramos trabajando para un grupo de investigación médica y nuestra tarea

consiste en ayudarlos a automatizar cuales son los remedios aconsejables para aliviarles

lo síntomas a los enfermos, eso síntomas son los que ayudan a predecir las enfermedades.

Como una ayuda, el grupo de médicos colaboró en determinar los predicados

enfermo_de(nombre,enfermedad)

tiene_sintoma (nombre,sintoma)

sintoma_de (sintoma,enfermedad)

elimina (remedio,sintoma)

recetar_a (remedio,nombre)

alivia (remedio,enfermedad)

Estos pueden no ser los únicos que no lleve a construir un programa para tal efecto.

3. Queremos viajar por Europa y África y debemos determinar nuestro presupuesto, por ello

obtuvimos algunos precios:

Transporte_a(roma,2000).

Transporte_a(londres,2500).

Transporte_a(tunez,1500).

Alojamiento_en(hotel,roma,250).

Alojamiento_en(hotel,londres,150).

Alojamiento_en(hotel,tunez,100).

Alojamiento_en(hostal,roma,150).

Alojamiento_en(hostal,londres,100).

Alojamiento_en(hostal,tunez,80).

Alojamiento_en(camping,roma,100).

Alojamiento_en(camping,londres,50).

Alojamiento_en(camping,tunez,50).

Ahora queremos conocer cuánto nos costaría alojarnos X cantidad de días a algunos de

ese lugares y agregarle el costo del viaje.

Page 10: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 9 / 10

2012 1. Una importante empresa desea cubrir un puesto vacante, los requisitos son:

Edad: hasta 30 años, estudios ing. en sistema o analista de sistema, con experiencia de 2

años en el rubro, los candidatos son:

Marita 23 años, estudio ing quimica y tiene 1 año de experiencia.

Roberto 31 años, estudio analista de sistema y tiene 7 años de experiencia.

Belen 28 años, estudio ing en sistema y tiene 2 años de experiencia.

Juan 25 años, estudio ing en sistema y no tiene años de experiencia.

Florencia 23 años, estudio programación y tiene 1 año de experiencia.

Deben realizar un programa en prolog para identificar el nombre de la persona que

cumpla con los requerimientos.

2. Una empresa de transporte desea saber cual es el precio que debe cobrar sus pasajes,

para ello se pide realizar un programa en prolog que dando el lugar y el destino calcule el

precio a pagar por la distancia a realizar, el valor es el 25 % del costo del viaje, se sabe que

el colectivo hace 5km por litro, y que el precio del diesel es de $6.

2013

1. La empresa "Solas y Solos" dedicada a la búsqueda de formar parejas, cuenta con una

base de datos Prolog de todas las personas que desean encontrar una pareja. La Base de

Datos se estructura por una serie de hechos de la forma:

hombre(apellidoynombre, dni).

mujer(apellidoynombre, dni).

datos(dni, ciudad, edad, tipo). tipo: es una caracteristica que define a la persona.

armarParejaPersona(apellidoynombre,candidato).

Estos pueden no ser los únicos que no lleve a construir un programa para tal efecto.

La restricción que se deberá tener en cuenta es que solo se podrán armar parejas de una

misma ciudad y cuya diferencia de edad no sea mayor a dos años.

Datos

Román (dni 1, sanFco, edad 24, moreno), Héctor (2, morteros, 26, caucásico),

Oscar(3,sanFco,27,rubio),Brenda(4,sanFco,25,rubia), Julieta(5,morteros,25,moreno) y

Andrea (6,sanFco,22,peliroja).

2. Una importante empresa desea expandirse en la zona y desea saber los costos para

instalarse en otra ciudad, pero no sabe cuál sería la mejor opción debido a los costos de

transporte desde el almacen principal (AP) a las respectivas ciudades y los impuestos

locales, para ello desea saber:

110 km

70 km

A

C

B D

E

160 km

60 km 50 km

Page 11: GUÍA DE EJERCICIOS PRÁCTICOS 2015paradigmas-programacion.wikispaces.com/file/view/PARADIGMAS+guí… · Paradigmas de Programación Ingeniería en Sistemas de información José

Paradigmas de Programación

Ingeniería en Sistemas de información José Oscar Mugetti Mare

UTN FRSFCO

Paradigma Funcional 10 / 10

$8000

$1000 AP

A=$4500

B=$3000

C=$3500 D=$2000