Hola, este es un programa (el codigo)hecho en visual prolog (lenguaje orientado a Inteligencia Artificial)
Consiste en cargar una base de datos previamente, y una vez terminada la base de datos lo utilizan.
NOTA: deben montarlo con Visual proglog (hay versiones gratuitas) yo les doy solo el codigo del programa (osea todo el laburo) hay que ensamblarlo nomas (Run)
Es como una guia telefonica pero de Pc, pero mejor..porque?
suponiendo que uds tienen el telefono de una persona y queiren averiguar los otros datos (nombre y apellido, direccion,etc)
Ingresan el numero de telefono y te tira todo el resto.
Si uds quieren saber quien vive en una casa X, Ingresan la calle y el numero y te tira el apellido y nombre y telefono.
Y asi con todos los datos, con pocos datos te tira muchos, si tenes el nombre de la calle y el apellido, los ingresas y te tira el nombre, el telefono y el numero de la casa.
Espero que les sea útil, es ideal para gente que sepa de lenguajes y programacion...
Lo que si tienen que cargar la base de datos previamente o hacerle modificaciones, etc.
Aqui el codigo del programa:
PREDICATES
NONDETERM GUIA (SYMBOL,SYMBOL,SYMBOL,INTEGER,INTEGER).
NONDETERM PREGUNTAS(INTEGER).
NONDETERM A(SYMBOL,SYMBOL)
NONDETERM B(STRING,INTEGER).
NONDETERM C(INTEGER).
NONDETERM D(SYMBOL,SYMBOL,SYMBOL,INTEGER).
NONDETERM E(SYMBOL,SYMBOL,INTEGER).
NONDETERM F(SYMBOL,INTEGER,INTEGER).
CLAUSES
GUIA ("GOMEZ","JUAN","CORDOBA",1500,427236).
GUIA ("GIMENEZ","ROBERTO","SAN_JUAN",175,429887).
PREGUNTAS(X):-
WRITE("n INGRESE UNA DE LAS SIGUIENTES OPCIONES:",
WRITE("n OPCION 1= USTED SOLO CUENTA CON APELLIDO Y NOMBRE",
WRITE("n OPCION 2= USTED SOLO CUENTA CON DIRECCION Y NUMERO",
WRITE("n OPCION 3= USTED SOLO CUENTA CON EL TELEFONO",
WRITE("n OPCION 4= USTED TIENE APELLIDO Y NOMBRE,DIRECCION Y NUMERO",
WRITE("n OPCION 5= USTED TIENE APELLIDO Y NOMBRE,Y TELEFONO",
WRITE("n OPCION 6= USTED TIENE DIRECCION,NUMERO Y TELEFONO",
WRITE("n ESCRIVA AQUI LA OPCION (PULSE UNA O VARIAS VECES 'ENTER' ) ===>",
readint(X),X=1,A(_,_);
readint(X),X=2,B(_,_);
readint(X),X=3,C(_);
readint(X),X=4,D(_,_,_,_);
readint(X),X=5,E(_,_,_);
readint(X),X=6,F(_,_,_);
WRITE("n A INGRESADO UNA OPCION INCORRECTA",NL,EXIT.
A(APELLIDO,NOMBRE):-
WRITE("INGRESE EL APELLIDO Y EL NOMBRE==>",readln(APELLIDO),readln(NOMBRE),
GUIA (APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE("n APELLIDO= " , APELLIDO , " NOMBRE = " , NOMBRE , " DIRECCION = " , DIRECCION , " NUMERO= " , NUMERO , " TELEFONO= " , TELEFONO),NL,EXIT.
B(DIRECCION,NUMERO):-
WRITE("n INGRESE DIRECCION Y EL NUMERO DE DIRECCION",readln(DIRECCION),readint(NUMERO),
GUIA(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),NL,EXIT.
C(TELEFONO):-
WRITE("n INGRESE EL NUMERO TELEFONICO",readint(TELEFONO),
GUIA(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),NL,EXIT.
D(APELLIDO,NOMBRE,DIRECCION,NUMERO):-
WRITE("n INGRESE APELLIDO Y NOMBRE Y DIRECCION Y NUMERO",readln(APELLIDO),readln(NOMBRE),readln(DIRECCION),readint(NUMERO),
GUIA (APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),NL,EXIT.
E(APELLIDO,NOMBRE,TELEFONO):-
WRITE("n INGRESE EL APELLIDO Y NOMBRE Y TELEFONO",readln(APELLIDO),readln(NOMBRE),readint(TELEFONO),
GUIA (APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE (APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),NL,EXIT.
F(DIRECCION,NUMERO,TELEFONO):-
WRITE("n INGRESE DIRECCION Y NUMERO Y TELEFONO",readln(DIRECCION),readint(NUMERO),readint(TELEFONO),
GUIA(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),
WRITE(APELLIDO,NOMBRE,DIRECCION,NUMERO,TELEFONO),NL,EXIT.
goal
PREGUNTAS(X).
Termino el codigo del programa espero les sea útil, comenten y besos.
Nota: cuando aparece la carita (emoticon) es por que hay un parentesis que se cierra.
osea no pongan la carita eso me configura aca el sistema de gramatica de taringa..

