Resolver los siguientes ejercicios
Construir los siguientes programas en Prolog 1.
Arma rmar una una ba base de da datos con con la si siguiente inf información sob sobre los los vue vuelos de de una una aerolínea, el predicado puede ser “es_vuelo”, por ejemplo: es_vuelo(buenos_aires, córdoba. !iudad de origen
!iudad de destino
"uenos Aires "uenos Aires "uenos Aires !órdoba !órdoba !órdoba #an %uan #an %uan #an %uan )endo*a #anta $osa
!órdoba #anta $osa #an %uan #anta &e 'ucumn #anta $osa 'ucumn )endo*a +euu-n 'ucumn #an %uan
.
/sando /sa ndo la base de vuel vuelos, os, e0p e0presa resarr las sigu siguient ientes es preg pregunta untas s como cons consulta ultas s rolog:
a
b
c
d
e
2'e 2'engo ngo alg alg3n 3n vuel vuelo o de de !órd !órdob oba a a #ant #anta a $os $osa4 a4 es_vuelo(cordoba,santa_rosa. true. 250i 250ist ste e un vuel vuelo o des desde de #ant #anta a &e 6ast 6asta a +eu +euu u-n -n4 4 es_vuelo(santa_fe,neuuen. false. 250i 250ist ste e un vuel vuelo o des desde de 'ucum cumn n 6ast 6asta a #an #an %ua %uan4 n4 es_vuelo(tucuman,san_juan. false. 27ac 27acia ia ue ue ciu ciuda dade des s van van los los vue vuelo los s ue ue part parten en de !órd !órdob oba4 a4 es_vuelo(cordoba,8. 8 9 santa_fe 8 9 tucuman 8 9 santa_rosa. 2;e 2;e don donde de provi rovien enen en los los vue vuelo los s ue ue lleg llegan an a #an #an %uan %uan4 4 es_vuelo(8,san_juan. 8 9 buenos_aires 8 9 santa_rosa.
<.
!on la base de vuelos, contestar las siguientes preguntas:
a
250iste alg3n vuelo desde #anta $osa a )endo*a pasando por #an %uan4 es_vuelo(santa_rosa,san_juan,es_vuelo(san_juan,mendo*a. true. b 250iste alg3n vuelo desde "uenos Aires a #an %uan pasando por alguna otra ciudad4 es_vuelo(buenos_aires,8,es_vuelo(8,san_juan. 8 9 santa_rosa c) 2or u- ciudad intermedia pasa un vuelo ue parte de "uenos Aires = llega a #anta &e4 es_vuelo(buenos_aires,8,es_vuelo(8,santa_fe. 8 9 cordoba d) 2or cules dos ciudades intermedias pasa un vuelo ue salga de !órdoba = llega a )endo*a4 es_vuelo(cordoba,8,es_vuelo(8,>,es_vuelo(>,mendo*a. 8 9 santa_rosa, > 9 san_juan. ?.
#uponer ue se tiene la siguiente base de datos con información sobre la jeraruía militar de un país 6ipot-tico: tiene_rango(bus6, coronel. tiene_rango(@ome6ini, soldado. tiene_rango(@adafi, soldado. tiene_rango(fujimori, soldado. tiene_rango(gon*ale*, capitan. tiene_rango(gorbac6ov, general. tiene_rango(c6irac, cabo. tiene_rango(6ussein, sargento. tiene_rango(ford, teniente. tiene_rango(arafat, ma=or. es_jefe_de(general, coronel. es_jefe_de(coronel, ma=or. es_jefe_de(ma=or, capitn. es_jefe_de(capitn, teniente. es_jefe_de(teniente, sargento. es_jefe_de(sargento, cabo. es_jefe_de(cabo, soldado. 'raducir las siguientes consultas al espaol, e indicar cules serían las respuestas del sistema en cada caso sin usar la computadora:
a
4Bes_jefe_de(teniente, 8, es_jefe_de(8, >. 25l teniente es jefe deC = este a su ve* es jefe deC4 8 9 sargento, > 9 cabo.
b
4Bes_jefe_de(8, >, tiene_rango(6ussein, 8, tiene_rango(D,>. Averiguar el rango de 7ussein, de uien es jefe = el rango de este. 8 9 sargento, > 9 cabo, D 9 c6irac
c
4Btiene_rango(bus6,8 tiene_rango(arafat, 8. 2!ules son los rangos de "us6 o arafat4 8 9 coronel 8 9 ma=or.
d
4Btiene_rango(8,>, es_jefe_de(ma=or,>. 2!ul es la persona = el rango de esta, si tiene como jefe a un ma=or4 &alse
e
4Bes_jefe_de(8, sargento, not(tiene_rango(@adafi, 8. 2Eu- rango tiene la persona es jefe del sargento4 +o debe ser el rango ue tiene @adafi 8 9 teniente. (+ot es un predicado autoconstruido del lenguaje ue es verdadero cuando su argumento es un predicado falso = viceversa. 5scribir en rolog las siguientes consultas:
a b
c
G.
2Eu- rango tiene el jefe de Fon*le*4 tiene_rango(gon*ale*,8,es_jefe_de(>,8,tiene_rango(D,>. 25s !6irac jefe de 7ussein4 tiene_rango(c6irac,=,es_jefe_de(=,*,tiene_rango(6ussein,*. false 2Eui-n o uienes dependen directamente de !6irac4 tiene_rango(c6irac,8,tiene_rango(D,>,es_jefe_de(8,>. 8 9 cabo,D 9 @ome6ini,> 9 soldado 8 9 cabo,D 9 @adafi,> 9 soldado 8 9 cabo,D 9 fujimori,> 9 soldado
$eescribir la base de vuelos inclu=endo el tiempo de viaje, de acuerdo con la siguiente tabla: !iudad de origen
!iudad de destino
;uración (min
"uenos Aires "uenos Aires "uenos Aires !órdoba !órdoba !órdoba #an %uan #an %uan #an %uan )endo*a #anta $osa
!órdoba #anta $osa #an %uan #anta &e 'ucumn #anta $osa 'ucumn )endo*a +euu-n 'ucumn #an %uan
HI JI 1I ?I KI JG HG 1G 1II LG HI
/sar un predicado ternario, por ejemplo: vuelo(buenos_aires, cordoba, HI.
5fectuar las siguientes consultas: a
2!unto se tarda para ir desde !órdoba 6asta 'ucumn4 vuelo(córdoba,tucumn,8. 8 9 KI b 2!unto se tarda para ir desde "uenos Aires 6asta #anta &e pasando por !órdoba4 vuelo(buenos_aires,córdoba,8,vuelo(córdoba,santa_fe,>. 8 9 HI, > 9 ?I. c 2!unto se tarda para ir desde "uenos Aires 6asta #an %uan pasando por !órdoba = #anta $osa4 vuelo(buenos_aires,córdoba,8,vuelo(córdoba,santa_rosa,>,vuelo(santa_rosa,san_juan,D.
8 9 HI, > 9 JG, D 9 HI. d
e
f
#aliendo desde "uenos Aires, 2a u- ciudades se puede llegar en menos de LI minutos4 vuelo(buenos_aires,8,>,>MLI. 8 9 córdoba,> 9 HI 8 9 santa_rosa,> 9 JI 2!ules son los vuelos de ms de una 6ora de duración4 vuelo(8,>,D,DNKI. 8 9 buenos_aires,> 9 córdoba,D 9 HI 8 9 buenos_aires,> 9 santa_rosa,D 9 JI 8 9 buenos_aires,> 9 san_juan,D 9 1I 8 9 córdoba,> 9 santa_rosa,D 9 JG 8 9 san_juan,> 9 tucumn,D 9 HG 8 9 san_juan,> 9 neuu-n,D 9 1II 8 9 mendo*a,> 9 tucumn,D 9 LG 8 9 santa_rosa,> 9 san_juan,D 9 HI. 2!ul es la diferencia de tiempo entre el vuelo directo de "uenos Aires a #an %uan = el ue pasa por #anta $osa4 vuelo(buenos_aires,san_juan,8,vuelo(buenos_aires,santa_rosa,>,vuelo(santa_ros a,san_juan,D,E9>ODB8. 8 9 1I, > 9 JI, D 9 HI, E 9 JIOHIB1I
K.
Armar una base con la siguiente información alimentaria: una ración de pollo tiene JI calorías, un flan 1LI = una de buen asado
a 2!untos flanes me puedo comer4 b 2uedo comer el asado = el pollo4 calorias(asado,8, calorias(pollo,>,)9(8O>,).
c 2#i me como el pollo = el flan, cuntas calorías, menos ue las m0imas ingiero4 d 2!untas calorías ingiero si me como el pollo = dos flanes4