miércoles, 2 de mayo de 2012

Programación en PROLOG

Este programa es de un menú en cada linea va la explicación de que hace cada sintaxis.   

pausa :- nl,write('Pulsa <Enter> para continuar '),     ""En cada pausa se visualizara en pantalla el texto del write""        
skip(10).  ""lee y salta diez caracteres""
pausa1 :- nl,write('Pulsa <Enter> para confirmar el pedido '), 
skip(10).  ""lee y salta diez caracteres""

/* borraPantalla <- borra la pantalla */   ""Esta instrucción es para borrar pantalla cada que se invoque borraPantalla en distintos lugares del programa""
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).   


% Instrucciones del mensaje de error  ""Estas instrucciones son para mandar un mensaje de error cuando se allá seleccionado una opción incorrecta o la opción no este disponible en el menú principal""
error:-  
borraPantalla, 
escribe("La opción seleccionada no esta disponible"), nl, 
escribe("O el número escrito es incorrecto"), 
pausa. 

% Instrucciones Del Mensaje de Salida ""Estas instrucciones son para finalizar el programa el cual borrara pantalla y nos mandada visualizar unos textos finales""
salida:- 
borraPantalla, 

escribe("|------------¡Gracias Por Su Preferencia! ------------|"),nl, 
escribe("|----------Universidad Autónoma De Guerrero---------|"),nl, 
escribe("|---------------Facultad de Matemáticas-------------|"),nl, 
escribe("|---------------Inteligencia Articifial-------------|"),nl, 
escribe("|------------Carlos Anubis Ocampo Montufar----------|"),nl, 
pausa, 
halt. ""Termina la ejecución""  



% Instrucciones Del Manejo de opciones Del Menu Principal
"" Están instrucciones son para capturar las opciones desde el teclado y mandar visualizar el texto correspondiente a cada valor de X""
opciones(X):- 
( (X = 1) ->      ""lee la opción almacenada compara y manda visualizar los textos""
escribe("Pechuga de Pollo"),nl,
escribe("Arroz"),nl,
escribe("frijoles"),nl,
escribe("Refresco de 600 ml"),nl, 
pausa1; 
(X = 2) ->      ""lee la opción almacenada compara y manda visualizar los textos""
escribe("Mole rojo"),nl,
escribe("Arroz"),nl,
escribe("Sopa Fria"),nl,
escribe("Refresco de 600 ml"),nl, 
pausa1; 
(X = 3) ->     ""lee la opción almacenada compara y manda visualizar los textos""
escribe("Carne de puerco"),nl,
escribe("Arroz"),nl,
escribe("Frijoles"),nl,
escribe("Refresco de 600ml"),nl, 
pausa1;
(X = 4) -> salida;       ""lee la opción almacenada compara y manda visualizar los textos""
error). 

% Instrucciones Menú Principal 

menu:- ""Inicializa el menu""
borraPantalla, ""Borra la pantalla con las instrucciones antes dadas""
escribe("-------Restaurant Chilpancingo---------"),nl,  ""Escribe el texto y salta linea""
escribe("-----------Menu principal--------------"),nl,  ""Escribe el texto y salta linea""
escribe("Seleccione Su Menu:"),nl,  ""Escribe el texto y salta linea""
tab(10),escribe("1) Menu 1"),nl,  ""deja un espacio de 10 y escribe el texto luego salta linea""
tab(10),escribe("2) Menu 2"),nl,  ""deja un espacio de 10 y escribe el texto luego salta linea""
tab(10),escribe("3) Menu 3"),nl,  ""deja un espacio de 10 y escribe el texto luego salta linea""
tab(10),escribe("4) Finalizar Pedido"),nl,  ""deja un espacio de 10 y escribe el texto luego salta linea""

escribe("Digite el numero del menu deseado: "), read(X), ""Manda a pantalla el texto y lee el valor introducido"" 
opciones(X), ""Almacena el valor introducido en la variable opciones""
menu. 

% Instrucciones Para Carga el Menú Principal 
?-menu.


""SI HAY ALGÚN ERROR HÁGANME SABER SE LOS AGRADECERÉ""