Prolog - CREAR MENU EN PROLOG AYUDA PORFA ME URGE

 
Vista:

CREAR MENU EN PROLOG AYUDA PORFA ME URGE

Publicado por david (4 intervenciones) el 18/06/2011 23:57:03
[b]hola a todos necesito la ayuda dd ustedes en prolo
tengoun programa q muestra un menu echo prolog aqui mismo lo conseguiq
poero no se mucho sobre prolog
e qerido agregarle en cada opcion algo mas por ejemplo
}
si elijo la opcion 1
realizaria una operascion aritmetica por ejemplo
o alguna otro cosa pero no e pódido agregarle algo a este codigo y m urge

les agradesco cualquier ayuda

por favor no me digas como acerlo dejeme el codigo agregandole el codigo q necesito .

o tambien seria bueno tener el menu en este programa y cuando elija una opcion mande a
llamar un archivo de prolog o sea mande.

me explico mejor q el codigo del menun solo contengo el menu y desde ahi mandar a llamar o ejecutar un archivo aparte echo en prolog tambien ubicado en la carpeta prolog o en otra parte de la pc

la verdad lo necesito
les agradeceria mucho su ayuda[/b

ESTE ES }EL CODIGO Q CONSEGUI AQUI MISMO PERO NO E PODIODO AGREGARLE LO QUE QIERO O ME FACILITAN UNO ASI COMO LO EXPLICOM ARRIBA PORFA

/*Para usar el menu se guarda el archivo con extencion .pl, se hace doble clic en el y listo,
este codigo fue provado con SWI-Prolog, al digitar una opcion DEBE de poner un punto despues
y enter*/

/* pausa &lt- detiene la ejecuci¢n del programa hasta que se pulse una tecla */
pausa :- nl,write('Pulsa &ltreturn> para continuar '),
skip(10).

/* borraPantalla &lt- borra la pantalla */
borraPantalla :- borraLinea(25).
borraLinea(1) :- !,nl.
borraLinea(N) :- nl,N1 is N-1,borraLinea(N1).

/*Escribe caracteres*/
escribe([]).
escribe([X|Y]):-
put(X),
escribe(Y).

%-------------------------Muestra mensaje de error---------------------------------
error:-
borraPantalla,
escribe("No escribio un numero"), nl,
escribe("O el numero escrito no esta en el rango del menu"),
pausa.

%-------------------------Mensaje de Salida---------------------------------
salida:-
borraPantalla,
escribe("|---------------------------------------------------|"),nl,
escribe("|--Universidad Latina de Costa Rica--|"),nl,
escribe("|-Facultad de Ingenieria en Sistemas-|"),nl,
escribe("|--------------Programacion IV--------------|"),nl,
escribe("|-------Eduardo Gonzalez Chinchilla-----|"),nl,
pausa,
halt.



%-------------------------Manejo de opciones Menu Principal---------------------------------
opciones(X):-
( (X = 1) ->
escribe("Opcion 1"),nl,
pausa;
(X = 2) ->
escribe("Opcion 2"),nl,
pausa;
(X = 3) ->
escribe("Opcion 3"),nl,
pausa;
(X = 4) -> salida;
error).

%-------------------------Menu Principal---------------------------------

menu:-
borraPantalla,
escribe("-----------Menu principal--------------"),nl,
escribe("Digite su obcion:"),nl,
tab(10),escribe("1) Opcion 1"),nl,
tab(10),escribe("2) Opcion 2"),nl,
tab(10),escribe("3) Opcion 3"),nl,
tab(10),escribe("4) Salir"),nl,
escribe("Su obcion es: "), read(X),
opciones(X),
menu.

%----------------Carga el Menu Principal------------------
?-menu.]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CREAR MENU EN PROLOG AYUDA PORFA ME URGE

Publicado por ...:Paiz:.. (4 intervenciones) el 23/06/2011 17:10:59
bueno me respondo a mi mismo, no logre lo que qeria pero si lo ice de esta manera talvez le sirva de algo

/*---------------------------------UNI--------------------------------*/
/*----------------------INTELIGENCIA-ARTIFICIAL-----------------------*/
/*--------------------------------------------------------------------*/
/*------------------JOSE DAVID PAIZ ARAUZ 2004-21059------------------*/
/*--------------------------------------------------------------------*/
/*--------------JOSE ENRIQUE SANTOS RIVERAS 2004 -21053---------------*/
/*--------------------------------------------------------------------*/
/*-------EXAMEN DE SUFICIENCIA ENTREGADO EL 22 DE JUNIO DEL 2011------*/
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/

pausa :- nl,write('|----presione enter y siga las instrucciones.-----|'),nl,
skip(10).
/*----------------------------------------------------------------------------*/
/* borraPantalla &lt- borra la pantalla */
borraPantalla :- borraLinea(25).
borraLinea(1) :- !,nl.
borraLinea(N) :- nl,N1 is N-1,borraLinea(N1).
/*----------------------------------------------------------------------------*/
menor(A,B,C,Menor):-
(A < B, A < C, Menor = A);
(B < A, B < C, Menor = B);
(C < A, C < B, Menor = C).
menor.
/*----------------------------------------------------------------------------*/
mayor(A,B,C,Mayor):-
(A > B, A > C, Mayor = A);
(B > A, B > C, Mayor = B);
(C > A, C > B, Mayor = C).
mayor.
/*----------------------------------------------------------------------------*/
/*-- PREDICADOS DE ENTRADA Y SALIDA --*/
/* ibl(L) <- imprime la lista L de forma bonita, es decir
saca por pantalla los elementos de la lista
separados por un espacio y terminado en salto
de linea */
ibl([]) :- nl.
ibl([X|Y]) :- write(X),
tab(1),
ibl(Y).

/* escribe_cadena(L) <- escribe en pantalla la lista L de
c¢digos ASCII en forma de cadena de
caracteres */
escribe_cadena([]).
escribe_cadena([X|Y]) :- put(X),
escribe_cadena(Y).
/* PREGUNTAS :
?- write(8+5*6),nl,display(8+5*6).
?- write(8*5+6),nl,display(8*5+6).
?- X=[esto,es,una,lista],write(L),nl,display(L),nl,ibl(L).
?- escribe_cadena([85,78,73,45,80,114,111,108,111,103]).
?- put(80),put(114),put(111),put(108),put(111),put(103).
*/
/*----------------------------------------------------------------------------*/
/* ÁRBOL GENEALÓGICO */
mensaje :- nl,write('Ejemplo "Árbol Genealógico" cargado.'),
nl,nl.
/*---- PROGRAMA PRINCIPAL ----*/
/*------ Hechos ------*/
/* padres(H,P,M,A) <- H tiene como padre a P y como madre
a M, y nació el año A */
padres('Don Jose',p1,m1,1893).
padres('Doña Maria',p2,m2,1904).
padres('Jose','Don Jose','Doña Maria',1925).
padres('Maria','Don Jose','Doña Maria',1928).
padres('Antonia',p3,m3,1929).
padres('Maria Jose','Don Jose','Doña Maria',1931).
padres('Luis',p4,m4,1931).
padres('Jose Antonio','Jose','Antonia',1949).
padres('Pepe','Jose','Antonia',1953).
padres('Rosa',p5,m5,1955).
padres('Jose Luis','Luis','Maria Jose',1961).
padres('Maria Luisa','Luis','Maria Jose',1966).
padres('Pepito','Pepe','Rosa',1985).

/* casados(H,M) <- El hombre H está casado con la mujer M */
casados('Don Jose','Doña Maria').
casados('Jose','Antonia').
casados('Luis','Maria Jose').
casados('Pepe','Rosa').

/* hombre(P) <- la persona P es del género masculino */
hombre('Don Jose').
hombre('Jose').
hombre('Luis').
hombre('Jose Antonio').
hombre('Pepe').
hombre('Jose Luis').
hombre('Pepito').

/* mujer(P) <- la persona M es del género femenino */
mujer('Doña Maria').
mujer('Antonia').
mujer('Maria').
mujer('Maria Jose').
mujer('Rosa').
mujer('Maria Luisa').

/*------ Reglas ------*/
/* edad(P,E) <- la persona P tiene E años */
edad(P,E) :- padres(P,_,_,A),
E is 1998-A.

/* mayor(P1,P2) <- la persona P1 es mayor que P2 */
mayor(P1,P2) :- padres(P1,_,_,A1);
padres(P2,_,_,A2);
A1<A2.

/* niño(P1) <- P1 es un niño (menos de 14 años) */
ninyo(P) :- edad(P,E),
E=<14.

/* joven(P1) <- P1 es una persona joven (entre 14 y 25 años) */
joven(P) :- edad(P,E),
14<E,E=<25.

/* adulto(P1) <- P1 es un adulto (entre 25 y 50 años) */
adulto(P) :- edad(P,E),
25<E,E=<50.

/* viejo(P1) <- P1 es una persona vieja (más de 50 años) */
viejo(P) :- edad(P,E),
E>50.

/* hermanos(H1,H2) <- H1 es hermano/a de H2 */
hermanos(H1,H2) :- padres(H1,P,M,_),
padres(H2,P,M,_),
H1\=H2.
/* tio(T,S) <- T es el tio de S */
tio(T,S) :- hombre(T),
padres(S,P,_,_),
hermanos(T,P).
tio(T,S) :- hombre(T),
padres(S,_,M,_),
hermanos(T,M).
tio(T,S) :- hombre(T),
padres(S,P,_,_),
hermanos(T1,P),
casados(T,T1).
tio(T,S) :- hombre(T),
padres(S,_,M,_),
hermanos(T1,M),
casados(T,T1).

/* tia(T,S) <- T es la tia de S */
tia(T,S) :- mujer(T),
padres(S,P,_,_),
hermanos(T,P).
tia(T,S) :- mujer(T),
padres(S,_,M,_),
hermanos(T,M).
tia(T,S) :- mujer(T),
padres(S,P,_,_),
hermanos(T1,P),
casados(T1,T).
tia(T,S) :- mujer(T),
padres(S,_,M,_),
hermanos(T1,M),
casados(T1,T).

/* primos(P1,P2) <- P1 es primo/a de P2 */
primos(P1,P2) :- padres(P1,PA1,MA1,_),
padres(P2,PA2,MA2,_),
(hermanos(PA1,PA2);
hermanos(PA1,MA2);
hermanos(MA1,PA2);
hermanos(MA1,MA2)).

/* abuelo(A,N) <- A es el abuelo de N */
abuelo(A,N) :- padres(N,P,M,_),
(padres(P,A,_,_);
padres(M,A,_,_)).

/* abuela(A,N) <- A es la abuela de N */
abuela(A,N) :- padres(N,P,M,_),
(padres(P,_,A,_);
padres(M,_,A,_)).

/* antepasado(A,P) <- A es antepasado de P */
antepasado(A,P) :- padres(P,A,_,_).
antepasado(A,P) :- padres(P,_,A,_).
antepasado(A,P) :- padres(P,PA,_,_),
antepasado(A,PA).
antepasado(A,P) :- padres(P,_,MA,_),
antepasado(A,MA).
:- mensaje.
/*----------------------------------------------------------------------------*/
/*Escribe caracteres*/
escribe([]).
escribe([X|Y]):-
put(X),
escribe(Y).
/*----------------------------------------------------------------------------*/
ayudaarbol:-
borraPantalla,
escribe("|------------Inteligencia Artificial--------------|"),nl,
escribe("|---------------Programa Numero4------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|---El sig. prog arbol genealogico de la famlia---|"),nl,
escribe("|--donde se puede hacer consulta sobre las edades-|"),nl,
escribe("|--quien es padra y madre, quien es abuela--------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|---------- CONSULTAS QUE SE PUEDEN RALIZAR ------|"),nl,
escribe("|--quien es abuela de quien-> abuela(nombre,X) la-|"),nl,
escribe("|--variable X es la se va a encontrar------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|--saber quienes son hombres-> hombre(X). --------|"),nl,
escribe("|---forma de elaborar la consulta:----------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
pausa;
ayudaarbol.
/*----------------------------------------------------------------------------*/
ayudalista:-
borraPantalla,
escribe("|------------Inteligencia Artificial--------------|"),nl,
escribe("|---------------Programa Numero3------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|-----El sig. prog esta compuesto en 2 partes-----|"),nl,
escribe("|--parte1:escribe el contenido de la lista L de---|"),nl,
escribe("|--codigo ASCII en forma de cadena de caracteres--|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|--parte2:imprime la lista L de forma bonita------|"),nl,
escribe("|--separado por espacios y salto de lineas--------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|------------------------parte1:------------------|"),nl,
escribe("|---forma de elaborar la consulta:----------------|"),nl,
escribe("|--X=[esto,es,una,lista],write(L),nl,display(L),nl,ibl(L).--|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|------------------------parte2:------------------|"),nl,
escribe("|--escribe_cadena([85,78,73,45,80,114,111,108,111,103]).----|"),nl,
escribe("|--put(85),put(78),put(73),put(45),put(80),put(114),put(111),put(108),put(111),put(103).---|"),nl,
pausa;
ayudalista.
/*----------------------------------------------------------------------------*/
ayudamanor:-
borraPantalla,
escribe("|------------Inteligencia Artificial--------------|"),nl,
escribe("|---------------Programa Numero1------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|----El sig. prog muestra el menor de 3 numeros---|"),nl,
escribe("|----que seran digitados por el usuario.----------|"),nl,
escribe("|--------...:Como ejecutar la consulta:...--------|"),nl,
escribe("|-------...:menor(num1,num2,num3,Menor):...-------|"),nl,
pausa;
ayudamanor.
%---------------------------------------------------
ayudamayor:-
borraPantalla,
escribe("|------------Inteligencia Artificial--------------|"),nl,
escribe("|---------------Programa Numero2------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|-------------------------------------------------|"),nl,
escribe("|----El sig. prog muestra el mayor de 3 numeros---|"),nl,
escribe("|----que seran digitados por el usuario.----------|"),nl,
escribe("|--------...:Como ejecutar la consulta:...--------|"),nl,
escribe("|-------...:menor(num1,num2,num3,Menor):...-------|"),nl,
pausa;
ayudamayor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar