Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Autor Mensaje
lorenzoguti Sin conexión
Empleado del buffet
RACING
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jun 2014
Mensaje: #1
Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico Ejercicios Paradigmas de Programación
Buenas noches Utnianos.
Vengo con un ejercicio de Paradigma Logico, que desde ayer estoy pensando que estoy haciendo mal y no me doy cuenta(seguro es una boludes, ojala), es el siguiente:

Una agencia de viajes lleva un registro con todos los vuelos que maneja de la siguiente manera:
vuelo(Codigo de vuelo, capacidad en toneladas, [lista de destinos] ).
Esta lista de destinos está compuesta de la siguiente manera:
escala(ciudad, tiempo de espera)
tramo(tiempo en vuelo)
Siempre se comienza de una ciudad (escala) y se termina en otra (no puede terminar en el aire al vuelo),
con tiempo de vuelo entre medio de las ciudades. Considerar que los viajes son de ida y de vuelta por la misma ruta.
vuelo(ARG845, 30, [escala(rosario,0), tramo(2), escala(buenosAires,0)]).
vuelo(BLE849, 175, [escala(paris,0), tramo(2), escala(berlin,1), tramo(3),
escala(kiev,2), tramo(2), escala(moscu,4), tramo(5), escala(seul,2), tramo(3),
escala(tokyo,0)])...

Me pide: escalaAburrida/2 : Relaciona un vuelo con cada una de sus escalas aburridas; una escala es
aburrida si hay que esperar mas de 3 horas.


Llegue hasta aca:

escalaAburrida(Vuelo,TiempoEspera):- vuelo(Vuelo,_,X), buscarTiempoEspera(X,T), TiempoEspera is T.
buscarTiempoEspera([],0).
buscarTiempoEspera([escala(_,T1)|Xs],T):- T1 > 3 , T is T1,buscarTiempoEspera(Xs,T2).
buscarTiempoEspera([tramo(_)|Xs],T):- buscarTiempoEspera(Xs,T).

Y me da false todo, ya que despues sacandole la condicion de T1 > 3 me di cuenta que solo agarra las primeras escalas de cada Viaje y como todas son 0 me devuelve eso.
Que le tendria que agregar o cambiar para que me siga buscando dentro de cada Viaje.

Gracias!
12-06-2014 21:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
CarooLina Sin conexión
Colaborador
❥❥❥❥
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3.640
Agradecimientos dados: 1.224
Agradecimientos: 1.410 en 511 posts
Registro en: Sep 2010
Mensaje: #2
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Hola lorenzoguti esto es muy horrible jaja
no me queda clara cual es tu duda, ni de que trata bien el problema. Tampoco entiendo por que usas recursivdad, el punto te dice que si lo hagas? Otra, es re boludo, pero usa nombres mas amigables..
pones "vuelo(Vuelo,_,X)" y que es X?? tengo que ir hast arriba buscando que es, ponele un nombre mejor.Los datos la próxima ponelos mejor o directamente subi el enunciado

love
(Este mensaje fue modificado por última vez en: 12-06-2014 22:16 por CarooLina.)
12-06-2014 22:15
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
lorenzoguti Sin conexión
Empleado del buffet
RACING
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jun 2014
Mensaje: #3
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
X es la lista de destinos, en la que están escala y tramo.
Sobre esa tendría que sacar el tiempo de espera, que esta dentro de escala. Y trate de usar recursividad para entrar en toda la lista de destinos.
Eso fue lo que intente pero bueno, intentare por otro lado.

Gracias por las recomendaciones!
12-06-2014 22:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #4
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Me parece que le estas errando al punto, lo que te piden es (Vuelo, ListaEscalasAburridas) que lo resolves con orden superior, un findall por ejemplo
13-06-2014 11:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
lorenzoguti Sin conexión
Empleado del buffet
RACING
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jun 2014
Mensaje: #5
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Sii, el problema es que fue la primera clase y ya nos mandaron a hacer eso y no explicaron Orden Superior. Estoy tratando de resolverlo de otra forma por las dudas!.

Muchas Gracias!
13-06-2014 18:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
odin Sin conexión
Empleado de Fotocopiadora
Sin estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 38
Agradecimientos dados: 2
Agradecimientos: 11 en 11 posts
Registro en: May 2011
Mensaje: #6
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Igualmente, el findall deberían haberlo explicado, es "básico" y es lo que necesitas para crear la lista de escalas aburridas, porque con recursividad te cuesta mucho mas generar la lista que te piden
Simplemente haces por un Vuelo un findall de todas sus escalas con tiempo mayor a 3 y devolves en la lista
13-06-2014 19:16
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
lorenzoguti Sin conexión
Empleado del buffet
RACING
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 5
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jun 2014
Mensaje: #7
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico
Sii deberian pero no =( me voy a poner a estudiarlo por mi cuenta ja
14-06-2014 19:32
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rihardmarius Sin conexión
Secretario de la SAE
Por qué no me derivas el loga...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 415
Agradecimientos dados: 100
Agradecimientos: 395 en 67 posts
Registro en: Oct 2011
Mensaje: #8
RE: Ayuda Ejercicio, Ejercicio 4-Guia 3-Logico

/* ej4: viajes */

/*vuelo(Codigo_de_vuelo, Capacidad_en_toneladas, [Lista_de_destinos] ).
escala(ciudad, tiempo_de_espera)
tramo(tiempo_en_vuelo) */

vuelo('ARG845', 30,
[escala(rosario,0), tramo(2), escala(buenosAires,0)]).

vuelo('MH101', 95,
[escala(kualaLumpur,0), tramo(9), escala(capeTown,2),tramo(15), escala(buenosAires,0)]).

vuelo('DLH470', 60,
[escala(berlin,0), tramo(9), escala(washington,2), tramo(2),escala(nuevaYork,0)]).

vuelo('AAL1803', 250,
[escala(nuevaYork,0), tramo(1), escala(washington,2), tramo(3), escala(ottawa,3), tramo(15),
escala(londres,4), tramo(1), escala(paris,0)]).

vuelo('BLE849', 175,
[escala(paris,0), tramo(2), escala(berlin,1), tramo(3), escala(kiev,2), tramo(2),
escala(moscu,4), tramo(5), escala(seul,2), tramo(3), escala(tokyo,0)]).

vuelo('NPO556', 150,
[escala(kiev,0), tramo(1), escala(moscu,3), tramo(5), escala(nuevaDelhi,6), tramo(2),
escala(hongKong,4), tramo(2), escala(shanghai,5), tramo(3), escala(tokyo,0)]).

vuelo('DSM3450', 75,
[escala(santiagoDeChile,0), tramo(1), escala(buenosAires,2), tramo(7),
escala(washington,4), tramo(15), escala(berlin,3), tramo(15), escala(tokyo,0)]).

% tiempo_total_de_vuelo

tiempo_total_de_vuelo(Vuelo, Tiempo):- vuelo(Vuelo, _, Destinos), tiempo(Destinos, Tiempo).

tiempo([escala(_, T1), tramo(T2)|Resto], Tiempo):- tiempo(Resto, TiempoR), Tiempo is TiempoR + T1 + T2.
tiempo([escala(_,T)], T).

% escala_aburrida

escala_aburrida(Vuelo, Escala):- vuelo(Vuelo, _, Destinos), escalas(Escala, Destinos).

escalas(escala(Lugar, Tiempo), Destinos):- member(escala(Lugar, Tiempo), Destinos), Tiempo > 3.

% ciudades_aburridas

%ciudades_aburridas(Vuelo, Ciudades):- vuelo(Vuelo, _, Destinos), findall(C, (member(escala(C, T), Destinos), T > 3), Ciudades).
ciudades_aburridas(Vuelo, Ciudades):- vuelo(Vuelo, _, _), findall(C, escala_aburrida(Vuelo, escala(C, _)), Ciudades).

% vuelo_largo

vuelo_largo(Vuelo):- vuelo(Vuelo, _, Destinos), tramos(Destinos, Tiempo), Tiempo >= 10.

tramos([escala(_, _), tramo(T1)|Resto], Tiempo):- tramos(Resto, T2), Tiempo is T2 + T1.
tramos([escala(_, _)], 0).

% conectados

conectados(Vuelo1, Vuelo2):- vuelo(Vuelo1, _, Destinos1), vuelo(Vuelo2, _, Destinos2), Vuelo1 \= Vuelo2, get_ciudades(Destinos1, Ciudades1),
get_ciudades(Destinos2, Ciudades2), member(Ciudad, Ciudades1), member(Ciudad, Ciudades2).

get_ciudades([escala(C1, _), tramo(_)|Resto], [C1|Ciudades]):- get_ciudades(Resto, Ciudades).
get_ciudades([escala(C, _)], [C]).

% banda_de_tres

banda_de_tres(Vuelo1, Vuelo2, Vuelo3):- conectados(Vuelo1, Vuelo2), conectados(Vuelo2, Vuelo3).

% distancia_en_escalas

distancia_en_escalas(Ciudad1, Ciudad2, Distancia):- vuelo(_, _, Destinos), get_ciudades(Destinos, Ciudades), member(Ciudad1, Ciudades),
member(Ciudad2, Ciudades), nth0(Pos1, Ciudades, Ciudad1), nth0(Pos2, Ciudades, Ciudad2), Distancia is abs(Pos2 - Pos1).

% vuelo_lento

vuelo_lento(Vuelo):- vuelo(Vuelo, _, Destinos), not(vuelo_largo(Vuelo)), forall(member(escala(A,B), Destinos), escala_aburrida(Vuelo, escala(A,B))).


30-06-2014 04:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.