Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %vuelo(origen, destino, tiempo[min])
- vuelo('Salta','Cordoba',80).
- vuelo('Cordoba','Formosa',120).
- vuelo('Cordoba','Rosario',55).
- vuelo('Cordoba','Neuquen',100).
- vuelo('Cordoba','Mendoza',65).
- vuelo('Formosa','Corrientes',50).
- vuelo('Corrientes','Posadas',70).
- vuelo('Corrientes', 'Parana',57).
- vuelo('Corrientes','Santa Fe',93).
- vuelo('Posadas','Parana',85).
- vuelo('Santa Fe','Rosario',30).
- vuelo('Rosario','Parana',25).
- vuelo('Rosario','Buenos Aires',55).
- vuelo('Rosario','Mendoza',175).
- vuelo('Mendoza','Buenos Aires',85).
- vuelo('Mendoza','Neuquen',83).
- vuelo('Neuquen', 'Buenos Aires',90).
- vuelo('Buenos Aires','Calafate',115).
- vuelo('Buenos Aires', 'Puerto Madryn',75).
- vuelo('Neuquen','Calafate',65).
- calcular_ruta(Inicio, Fin, Visitado, Resultado) :-
- calcular_ruta(Inicio, Fin, [Inicio], 0, Visitado, Resultado).
- calcular_ruta(Inicio, Fin, Intermedios, DistanciaAc, Visitado, Total) :-
- vuelo(Inicio, Fin, Distancia),
- reverse([Fin|Intermedios], Visitado),
- Total is DistanciaAc + Distancia.
- calcular_ruta(Inicio, Fin, Intermedios, DistanciaAc, Visitado, Total) :-
- vuelo(Inicio, Intermedio, Distancia),
- \+ member(Intermedio, Intermedios),
- NuevaDistanciaAc is DistanciaAc + Distancia,
- calcular_ruta(Intermedio, Fin, [Intermedio|Intermedios], NuevaDistanciaAc, Visitado, Total).
Advertisement
Add Comment
Please, Sign In to add comment