Hoy les comparto un proyecto escolar que realice para una materia de programación donde nos enseñaron algo de PROLOG, esto fue hace algunos años (por no decir muchos), está hecho en Visual Prolog.
Proyecto: Elaborar un programa en Visual Prolog que utilice los hechos hijo, además utilizar los hechos hombre y mujer, utilizando un menú, se ejecutará una búsqueda inteligente utilizando el proceso de razonamiento adecuado para cada una de las reglas.
El menú contiene las siguientes consultas:
1. Buscar relación Tío.
2. Buscar relación Sobrino.
3. Buscar relación Abuela.
4. Buscar relación Nieta.
5. Buscar relación Hija.
6. Buscar relación Bisnieto.
7. Buscar relación Abuelo.
8. Buscar relación Tía.
9. Buscar relación Bisabuela.
10. Buscar relación Sobrina.
11. Buscar relación Prima.
12. Buscar relación Hermano.
13. Buscar relación Primo.
14. Buscar relación Hermana.
15. SALIR.
Ejemplo del Codigo en Ejecución. |
Este es el código fuente, desacrgalo aqui:
domains OPC=integer. X,Y,Z,W,V=symbol. predicates nondeterm hijo(symbol,symbol). nondeterm mujer(symbol). nondeterm hombre(symbol). nondeterm menu. nondeterm ciclo. nondeterm caso(integer). clauses hijo(alfonso,francisca). hijo(gloria,francisca). hijo(guillermina,francisca). hijo(alejandra,francisca). hijo(fortino,francisca). hijo(salvador,francisca). hijo(lilia,francisca). hijo(socorro,francisca). hijo(joel,francisca). hijo(osiel,francisca). hijo(veronica,alfonso). hijo(javier,alfonso). hijo(alonso,alfonso). hijo(marco_a,alfonso). hijo(jose_a,alfonso). hijo(yadira,gloria). hijo(euripides,gloria). hijo(antonio,gloria). hijo(rita,gillermina). hijo(carlos,gillermina). hijo(malaquias,gillermina). hijo(david,gillermina). hijo(francisco,alejandra). hijo(esmirna,alejandra). hijo(alejandro,alejandra). hijo(hugo,alejandra). hijo(eslith,fortino). hijo(cristal,salvador). hijo(alma,salvador). hijo(oscar,lilia). hijo(uriel,lilia). hijo(mariela,lilia). hijo(silvia,socorro). hijo(samuel,socorro). hijo(selene,socorro). hijo(geovani,socorro). hijo(janeth,socorro). hijo(jonathan,socorro). hijo(perla,socorro). hijo(flor,socorro). hijo(guadalupe,socorro). hijo(francisco_j,osiel). hijo(eduardo,joel). hijo(javier_jr,javier). hijo(veronica_i,javier). hijo(ernesto,alonso). mujer(francisca). mujer(gloria). mujer(guillermina). mujer(alejandra). mujer(lilia). mujer(socorro). mujer(veronica). mujer(yadira). mujer(rita). mujer(emma). mujer(esmirna). mujer(eslith). mujer(cristal). mujer(alma). mujer(mariela). mujer(silvia). mujer(selene). mujer(janeth). mujer(perla). mujer(flor). mujer(guadalupe). mujer(veronica_i). hombre(alfonso). hombre(fortino). hombre(salvador). hombre(joel). hombre(osiel). hombre(javier). hombre(alonso). hombre(marco_a). hombre(jose_a). hombre(euripides). hombre(antonio). hombre(carlos). hombre(malaquias). hombre(david). hombre(francisco). hombre(alejandro). hombre(hugo). hombre(oscar). hombre(uriel). hombre(samuel). hombre(geovani). hombre(jonathan). hombre(francisco_j). hombre(eduardo). hombre(javier_jr). hombre(ernesto). menu:-nl,nl,write("\t|-------------------------------------------------------------------------------|"),nl, write(" |======== M E N U P R I N C I P A L ========|"),nl, write(" |-------------------------------------------------------------------------------|"),nl, write(" | [1]- Buscar Relacion Tio |"),nl, write(" | [2]- Buscar Relacion Sobrino |"),nl, write(" | [3]- Buscar Relacion Abuela |"),nl, write(" | [4]- Buscar Relacion Nieta |"),nl, write(" | [5]- Buscar Relacion Hija |"),nl, write(" | [6]- Buscar Relacion Bisnieto |"),nl, write(" | [7]- Buscar Relacion Abuelo |"),nl, write(" | [8]- Buscar Relacion Tia |"),nl, write(" | [9]- Buscar Relacion Bisabuela |"),nl, write(" | [10]- Buscar Relacion Sobrina |"),nl, write(" | [11]- Buscar Relacion Prima |"),nl, write(" | [12]- Buscar Relacion Hermano |"),nl, write(" | [13]- Buscar Relacion Primo |"),nl, write(" | [14]- Buscar Relacion Hermana |"),nl, write(" | [15]- SALIR |"),nl, write(" |-------------------------------------------------------------------------------|"),nl,nl,nl, write(" Elija Su Opcion_ "). ciclo. ciclo:-ciclo. caso(1):-write("El Tio de_ "),readln(Y),hombre(Z), hijo(X,W),hijo(Z,W),hijo(Y,X),Z<>X, write(" es ",Z),nl. caso(2):-write("El es Sobrino de_ "),readln(Y),hombre(X), hijo(X,Z),hijo(Z,W),hijo(Y,W),Z<>Y, write(" es ",X),nl. caso(3):-write("La Abuela de_ "),readln(Y),mujer(X), hijo(Z,X),hijo(Y,Z), write(" es ",X),nl. caso(4):-write("La Nieta de_ "),readln(Z),mujer(X), hijo(Y,Z),hijo(X,Y), write(" es ",X),nl. caso(5):-write("La Hija de_ "),readln(Y),mujer(X), hijo(X,Y), write(" es ",X),nl. caso(6):-write("El Bisnieto de_ "),readln(W), hombre(X),hijo(Z,W),hijo(Y,Z),hijo(X,Y), write(" es ",X),nl. caso(7):-write("El Abuelo de_ "),readln(Y),hombre(X), hijo(Z,X),hijo(Y,Z), write(" es ",X),nl. caso(8):-write("La es Tia de_ "),readln(Y),mujer(X), hijo(X,W),hijo(Z,W),hijo(Y,Z),X<>Z, write(" es ",X),nl. caso(9):-write("La Bisabuela de_ "),readln(X),mujer(W), hijo(Z,W),hijo(Y,Z),hijo(X,Y), write(" es ",W),nl. caso(10):-write("La Sobrina de_ "),readln(Y),mujer(X), hijo(X,Z),hijo(Z,W),hijo(Y,W),Z<>Y, write(" es ",X),nl. caso(11):-write("La Prima de_ "),readln(Z),mujer(V), hijo(X,W),hijo(Y,W),hijo(Z,X),hijo(V,Y),X<>Y, write(" es ",V),nl. caso(12):-write("El es Hermano de_ "),readln(Y),hombre(X), hijo(X,Z),hijo(Y,Z),Y<>X, write(" es ",X),nl. caso(13):-write("El Primo de_ "),readln(Z),hombre(V), hijo(X,W),hijo(Y,W),hijo(Z,X),hijo(V,Y),X<>Y, write(" es ",V),nl. caso(14):-write("La Hermana de_ "),readln(Y),mujer(X), hijo(X,Z),hijo(Y,Z),Y<>X, write(" es ",X),nl. caso(15):-nl,nl,nl,write("\tEl Programa Ha Finalizado presiona \"Esc\""), nl,write("\t\t"),!. goal ciclo,system("cls"),menu,readint(OPC),nl,nl,caso(OPC),OPC=15,!.
4 comentarios:
Hola, muy buen aporte!! pero tengo un problema no se utilizar visual prolog me gustaria probar el código pero no se en que parte de visual prolog debo pegarlo :/
Es un proyecto creado en modo Consola en Visual Prolog (no recuerdo la version del editor), espero y esto te pueda ayudar para crear tu proyecto.
http://www.visual-prolog.com/vip/product/default.htm
El link no funciona amigo
Publicar un comentario
Deja tu Comentario