Programación en Prolog: Ejemplos Prácticos de Rutas, Sumatorias, Agendas y Relaciones Familiares
Ejemplo 1: Búsqueda de Rutas
/*Preguntar el origen y el destino*/
encontrar_ruta:-
nl,
write('Desde: '),
read(A),
write('Hasta: '),
read(B),
ruta(A,B,D),
write('La distancia es '),
write(D),nl,
not(displayruta),
write(B).
/*Disponer para bien encontrar la ruta*/
ruta(A,B,D):-
es_estacion(A,B,D).
/*O bien informar de fallo*/
ruta(_,_,D):-
nl,
write('No hay ruta o no esta dentro de la distancia especificada'),
nl,D=0,
purgar.
/*Ver si hay conexión entre dos ciudades*/
es_estacion(T,T2,D):-
estacion(T,T2,D),
anadir_a_ruta(T).
es_estacion(T,T2,D):-
estacion(T,X,D2),
X\==T2,
anadir_a_ruta(T),
es_estacion(X,T2,D3),
D is D2+D3.
es_estacion(T,_,D):-
write('Punto sin salida en '),
write(T), nl,
D is 0,
fail.
/*Añadir a lista de ciudades visitadas*/
anadir_a_...
