En prolog también se pueden utilizar los campos text_item para ingresar valores, un ejemplo de ello puede ser un pequeño programa que sume, a continuación te digo como hacerlo.
Vamos a proceder a abrir nuestro programa SWI-Prolog.
Una vez que este abierto procedemos a crear un nuevo archivo.
Escogemos la ruta dodne se va a guardar el archivo.
Una vez abierto nuestro editor de código vamos a proseguir a excribir.
Seguimos escribiendo.
Escribimos mas.
Ya se que se ve que es mucho código pero en verdad es poco, la mayoría son somentarios.
Y ya tenemos nuestra calculadora básica con Prolog e interface gráfica.
Código del Programa en Lenguaje Prolog.
%Vamos a llamar a nuestra libreria grafica
:- use_module(library(pce)).
% Vamos a crear nuestra clausula Suma que va a recibir dos parametros,
% lo que son número1, número2 y el resultado por último que es otro
% parametro que maneja
% Además de recibir los parametros utilizamos atom_number para convertir
% la cadena que hemos leído a número, después realizamos la suma
% Resultado es la suma de los número que hemos convertidos. Y por último
% enviamos el resultado.
suma(N1,N2,R):- atom_number(N1,N1n), atom_number(N2,N2n), Resultado is N1n / N2n, send(R,selection,Resultado).
%Lo mismo podemos hacer con la resta
resta(N1,N2,R):- atom_number(N1,N1n), atom_number(N2,N2n), Resultado is N1n * N2n, send(R,selection,Resultado).
% En el caso de la resta pasa lo mismo pero con haciendo la respectiva
% operación
%Ahora vamos a crear nuestra interface gráfica
%
%new = nuevo objeto
%Ventana = Nombre de nuestro objeto
%dialog = tipo de objeto
%Calculadora = titulo que llevara nuestra ventana
:-new(Ventana, dialog('Calculadora')),
%Todo lo que nuestra ventana llevará dentro
%new = Nuevo objeto
%Txt_titulo = Nombre de nuestro objeto
%label = tipo de objeto
%nombre = variable donde se guardará el string
%Calculadora Básica = string del objeto
new(Txt_titulo, label(nombre,'Calculadora Básica')),
%new = Nuevo objeto
%Btn_salir = nombre de nuestro objeto
%button = tipo de objeto boton
%message = se comunica con sistema
%Ventana = objeto que va a manipular
%destroy = instruccion que se dará al sistema
new(Btn_salir, button('Salir', message(Ventana,destroy))),
%new = Nuevo objeto
%Item_num1 = Nombre de nuestro objeto
%text_item = Tipo de objeto
%Primer número = texto que llevará dentro nuestro objeto
new(Item_num1, text_item('Primer Número')),
%new = Nuevo objeto
%Item_num2 = Nombre de nuestro objeto
%text_item = Tipo de objeto
%Primer número = texto que llevará dentro nuestro objeto
new(Item_num2, text_item('Segundo Número')),
%new = Nuevo objeto
%Item_num1 = Nombre de nuestro objeto
%text_item = Tipo de objeto
%Primer número = texto que llevará dentro nuestro objeto
new(Item_resl, text_item('Resultado')),
%new = Nuevo objeto
%Btn_sumar = nombre de nuestro objeto
%button = tipo de objeto boton
%message = se comunica con sistema
%@prolog = se va a comunicar con el sistema de prolog
%suma = hace referencia a la claúsula suma
%Item_num1?selection = hace referencia a pasar el valor dentro del text_item a la claúsula suma como en una función
%Item_num2?selection = pasa el valor a la clapusula suma
%Item_resl = pasa el valor que se recupera despues de ejecutar suma
new(Btn_suma, button('Suma', message(@prolog, suma, Item_num1?selection, Item_num2?selection, Item_resl))),
%new = Nuevo objeto
%Btn_sumar = nombre de nuestro objeto
%button = tipo de objeto boton
%message = se comunica con sistema
%@prolog = se va a comunicar con el sistema de prolog
%suma = hace referencia a la claúsula suma
%Item_num1?selection = hace referencia a pasar el valor dentro del text_item a la claúsula resta como en una función
%Item_num2?selection = pasa el valor a la clapusula suma
%Item_resl = pasa el valor que se recupera despues de ejecutar resta
new(Btn_resta, button('Resta', message(@prolog, resta, Item_num1?selection, Item_num2?selection, Item_resl))),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Txt_titulo = objeto que se manipula
send(Ventana, append, Txt_titulo),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Item_num1 = objeto que se manipula
send(Ventana, append, Item_num1),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Item_num2 = objeto que se manipula
send(Ventana, append, Item_num2),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Item_resl = objeto que se manipula
send(Ventana, append, Item_resl),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Btn_suma = objeto que se manipula
send(Ventana, append, Btn_suma),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Btn_resta = objeto que se manipula
send(Ventana, append, Btn_resta),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%append = intrucción para añadir
%Btn_salir = objeto que se manipula
send(Ventana, append, Btn_salir),
%send = manipular de objeto
%Ventana = objeto donde se va a manipular
%open = intrucción para abrir ventana
send(Ventana,open).
Descargar el Proyecto en el siguiente:
Comentarios
Publicar un comentario