Prolog GPS Colombia- Programación logia y funcional

% INFORMACION DE COLOMBIA % LA ESTRUCTURA DE LOS DATOS ES: INFO(DEPARTAMENTO, CAPITAL, CANTIDAD DE VECINOS, SUPERFICIE, LISTA DE VECINOS) 
info('Amazonas','Leticia',1,109665,['Caquetá']). info('Antioquia','Medellín',6,63612,['Córdoba','Bolívar','Caldas','Chocó','Santander','Boyacá']). 
info('Arauca','Arauca',7,23818,['Río Meta','Boyacá']).
 info('Atlántico','Barranquilla',1,3019,['Bolívar']). 
info('Bolívar','Cartagena',6,25978,['Atlántico','Magdalena','Santander','Córdoba','Antioquia','Sucre']). info('Boyacá','Tunja',7,23012,['Norte de Santander','Santander','Arauca','Meta','Antioquia','Casanare','Cundinamarca']). info('Caldas','Manizales',4,7888,['Risaralda','Antioquia','Cundinamarca','Tolima']). 
info('Caquetá','Florencia',5,100965,['Meta','Huila','Guaviare','Cauca','Vaupés']). 
info('Casanare','Yopal',2,4449,['Cundinamarca','Boyacá']). 
info('Cauca','Popayán',6,29308,['Tolima','Valle del Cauca','Caquetá','Nariño','Putumayo','Huila']). info('Cesar','Valledupar',6,22905,['La Guajira','Magdalena','Norte de Santander','Bolívar','Santander','Magdalena']). info('Chocó','Quibdó',1,4653,['Valle de Cauca']). info('Córdoba','Montería',3,2502,['Sucre','Bolívar','Antioquia']). info('Cundinamarca','Bogotá',4,2421,['Meta','Boyacá','Huila','Tolima']). info('Guainía','Puerto Inírida',3,72238,['Vaupés','Vichada','Guaviare']).
 info('Guaviare','San José del Guaviare',5,62957,['Meta','Vichada','Guainía','Caquetá','Vaupés']).
 info('Huila','Neiva',5,1989,['Cundinamarca','Tolima','Meta','Caquetá','Cauca']). 
info('La Guajira','Rioacha',2,20848,['Cesar','Magdalena']). info('Magdalena','Santa Marta',1,23188,['La Guajira']). info('Meta','Villavicencio',5,85635,['Cundinamarca','Vichada','Caquetá','Huila','Meta']). info('Nariño','San Juan de Pasto',2,3282,['Cauca','Putumayo']).
 info('Norte de Santander','Cúcuta',3,21648,['Boyacá','Santander','Cesar']). info('Putumayo','Mocoa',3,24885,['Nariño','Caquetá','Cauca']).
info('Quindío','Armenia',3,1845,['Amazonas','Tolima','Risaralda']). info('Risaralda','Pereira',5,414,['Tolima','Antioquia','Caldas','Chocó','Quindío']).
info('San Andrés y Providencia','San Andrés',0,52,[]). info('Santander','Bucaramanga',3,30537,['Norte de Santander','Cesar','Boyacá']). 
info('Sucre','Sincelejo',2,1067,['Córdoba','Bolívar']). 
info('Tolima','Ibagué',6,23562,['Valle del Cauca','Caldas','Cundinamarca','Huila','Quindío','Risaralda']). 
info('Valle del Cauca','Cali',5,22195,['Chocó','Caldas','Quindío','Cauca','Tolima']). 
info('Vaupés','Mitú',3,54135,['Guainía','Guaviare','Caquetá']). 
info('Vichada','Puerto Carreño',3,105947,['Arauca','Meta','Casanare']). 

% ESTA FUNCION BUSCA UN ELEMENTO EN UNA LISTA 
my_member(X, [X|_]). /*% SI X SE CORRESPONDE CON LA CABEZA DE LA LISTA, ENTONCES LA ENCONTRO*/ my_member(X, [_|Ys]):- my_member(X, Ys). /* % VUELVE A LLAMAR LA BUSQUEDA CON LA COLA DE LA LISTA (QUITA LA CABEZA YA QUE NO ES IGUA A X)*/ /*

% FUNCION PARA BUSCAR LA CAPITAL DE UN DEPARTAMENTO*/ 

capitales(DEPTO, CAPTAL):- info(DEPTO,CAPTAL,_,_,_). % FUNCION PARA BUSCAR LOS DEPARTAMENTOS VECINOS 

vecinos(DEPTO, CANTIDAD, FRONTERA):- info(DEPTO,_,CANTIDAD,_,FRONTERA). % FUNCION PARA BUSCAR LA SUPERFICIE EN KM DE UN DEPARTAMENTO 

superficie(DEPTO, AREA):- info(DEPTO,_,_,AREA,_). % FUNCION PARA SABER SI DOS DEPARTAMENTOS SON VECINOS 

son_vecinos(DEPTO1, DEPTO2):- info(DEPTO1,_,_,_,FRONTERA1), % BUSCA LA LISTA DE VECINOS DEL DEPARTAMENTO 1 my_member(DEPTO2, FRONTERA1). % BUSCA SI EL DEPARTAMENTO 2 ESTA EN LA LISTA DE VECINOS DEL DEPARTAMENTO 1 % FUNCION QUE IMPLEMENTA JUEGO PARA ADIVINAR UN NUMERO 

adivina(DEPTO, VALOR):- info(DEPTO,_,_,AREA,_), revisa(VALOR, AREA). % FUNCION QUE COMPARA DOS NUMEROS PARA SABER SI EL NUMERO ADIVINADO ES MAYOR QUE EL BUSCADO revisa(VALOR, AREA):- VALOR > AREA, write('EL AREA ES MENOR'),nl. % 

FUNCION QUE COMPARA DOS NUMEROS PARA SABER SI EL NUMERO ADIVINADO ES MENOR QUE EL BUSCADO revisa(VALOR, AREA):- VALOR < AREA, write('EL AREA ES MAYOR'),nl. 

FUNCION QUE COMPARA DOS NUMEROS PARA SABER SI EL NUMERO ADIVINADO ES IGUAL QUE EL BUSCADO revisa(VALOR, AREA):- VALOR == AREA, write('EL AREA CORRECTA'),nl.

 /* EJEMPLOS DE USO DEL PROGRAMA: % BUSCA LA CAPITAL DE SANTANDER capitales('Santander', X). % BUSCA EL DEPARTAMENTO CON CAPITAL BOGOTA 

capitales(Y, 'Bogota'). 

% BUSCA LAS CAPITALES DE TODOS LOS DEPARTAMENTOS capitales(X,Y). % BUSCA SI CALDAS Y ANTIOQUIA SON VECINOS son_vecinos('Caldas', 'Antioquia'). % BUSCA LOS VECINOS DE TODOS LOS DEPARTAMENTOS 

son_vecinos(X, Y). 

% BUSCA LA SUPERFICIE DE TODOS LOS DEPARTAMENTOS DE COLOMBIA superficie(D, A). % BUSCA LA SUPERFICIE DEL DEPARTAMENTO DE CALDAS superficie('Caldas', A). % BUSCA LOS VECINOS DEL DEPARTAMENTO DE CALDAS 

vecinos('Caldas', C, F).

 % PRUEBA SI LA SUPERFICIE DE TOLIMA ES 23562 

adivina('Tolima',23562). 

% PRUEBA SI LA SUPERFICIE DE TOLIMA ES 23560 

adivina('Tolima',23560). 

% PRUEBA SI LA SUPERFICIE DE TOLIMA ES 23570 

adivina('Tolima',23570). */

Comentarios

Entradas populares