Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
VISUAL
2008
PROYECTO DE INTELIGENCIA ARTIFICIAL
INTEGRANTES
CASTAEDA AQUINO ALEX CHONON BARRANTES DENIS HUMAN CRUZADO JEINER PALOMINO CORREA JUBERTH PUMACCAJIA TASILLA JAVIER
INDICE
Ttulo I.- INTRODUCCIN II.- OBJETIVOS. III.- MARCO TERICO. A.- Prolog y el Lenguaje de la Lgica de Primer Orden A.1. Predicados A.2. Trminos B. Estructura de un Programa IV.- DESARROLLO DE LA APLICACIN. A.- Configurando Opciones Bsicas Del Proyecto. B.- Diseo De La Ventana Principal. C.- Diseo De Ventanas De Tipo Dialog D.- Insertar Codigo De Los Dialog Al Programa Principal. E.- Insertar Cdigo En El Programa Principal. F.- Ejecutar La Aplicacion Y Eliminar Componentes Adicionales G.- Nuestra Aplicacin Ejecutandose. V.- DESARROLLO DEL PROGRAMA EN VISUAL PROLOG PARA TRABAJAR CON LISTAS VI.- CONCLUSIONES. VII.- RECOMENDACINES. VIII.- BIBLIOGRAFIA Pgina 03 03 04 04 04 04 05 06 06 09 10 14 15 27 31 38 44 44
Pg. 2
I.- INTRODUCCIN
En el presente proyecto pretendemos mostrar en profundidad las nuevas herramientas con los que cuenta visual prolog, como por ejemplo botones de seleccin, edicin en cuadros de listas, llamado a otro tipo de ventanas, etc. Dichas herramientas nos permitirn contruir aplicaciones cada vez ms complicadas y robuscas, con interfaces visuales atractivas, y no las tpicas ventanas de consola, las cuales no muestran el amplio poder de PROLOG. El presente proyecto lo trabajaremos con una base de datos, lo que implico buscar una amplia gama de manuales, separatas, y diapositivas las cuales las encontramos en internet, sin embargo no nos consideramos expertos en el lenguaje ya que aun nos falta mucho por aprender. En el presente proyecto manejaremos la base de datos correspondiente a libros y revistas.
II.- OBJETIVOS.
Comprender la Programacin visual y orientado a eventos con Visual Prolog. Conocer el uso de ventanas y botones de Visual Prolog. Conocer el manejo de Visual Prolog. Conocer elementos de Visual Prolog, como por ejemplo, elementos de seleccin, cuadros de listas, mens, emergentes, etc. Trabajar con listas en visual prolog. Dar a conocer que los programas hechos en PROLOG no solo se pueden mostrar en consola tipo D.O.S sino tambin con una interfaz grfica tan igual como si se tratase de cualquier otro ID de programacin.
Pg. 3
Un sistema Prolog est basado en un comprobador de teoremas por resolucin para clusulas de Horn. La regla de resolucin no nos dice que clusulas elegir ni que literales unificar dentro de cada clusula. La estrategia de resolucin particular que utiliza Prolog es una forma de resolucin de entrada lineal (rbol de bsqueda estndar). Para la bsqueda de clusulas alternativas para satisfacer el mismo objetivo, Prolog adopta una estrategia de primero hacia abajo (recorrido del rbol en profundidad). Por todo esto, el orden de las clusulas (hechos y reglas) de un determinado procedimiento es importante en Prolog, ya que determina el orden en que las soluciones sern encontradas, e incluso puede conducir a fallos en el programa. Ms importante es, si cabe, el orden de las metas a alcanzar dentro del cuerpo de una regla.
Pg. 5
En esta pestaa se identifican el nombre del proyecto y el directorio en el cual va a estar situada nuestra aplicacin. En el caso de nuestro proyecto el nombre del proyecto ser Libros y el directorio base ser un directorio nuevo y vaco, es recomendable tener cada proyecto con cada directorio distinto.
2. Pestaa Target En esta pestaa se configura el tipo de plataforma donde se ejecutar el programa, el tipo de estrategia de interfaz de usuario que se utilizar, la aplicacin que se pretende generar, por ejemplo, un archivo exe o una dll y por ltimo seleccionar el lenguaje de programacin que se utilizar para generar el programa principal. Para todos nuestros ejemplos, las opciones siempre sern las mismas, es decir, el tipo de plataforma deber ser Windows32, UI Strategy ser de modo VPI de lo contrario el mtodo de programacin no ser ni visual ni orientado a eventos y se comportar como una aplicacin realizada para DOS. En Target Type seleccionaremos exe ya que es de este tipo la aplicacin que vamos a generar y en Main Program el lenguaje utilizado ser Prolog.
Pg. 6
4. Pestaa User Info Aqu se especifican datos, como por ejemplo, el nombre de la compaa, el nombre del autor, la versin de nuestra aplicacin y una breve descripcin de nuestro programa.
Pg. 7
Figura: Aspecto de creacin de ejemplo Libros En el cuadro de arriba se ven diferentes pestaas que pertenecen al dialogo de creacin de la aplicacin, la configuracin de ellas van directamente ligadas a como queremos representar nuestro programa. Las pestaas restantes Other Options y Help Maker se deben dejar tal como estn, ya que son especificaciones para construir aplicaciones mas avanzadas, como por ejemplo, conectividad con base de datos, cambiar el generador de cdigo, etc. Terminados estos pasos presionamos el botn Create momento en que nuestra aplicacin ha sido creada exitosamente, de inmediato deber aparecer el siguiente dialogo: En la parte izquierda de la figura se pueden apreciar los botones que nos permiten crear nuevos componentes para nuestra aplicacin. En la parte central aparecen dos archivos uno que siempre ser VPItools.pro y otro llamado con el nombre del proyecto (en este caso Libros.pro), estos dos archivos nunca debern ser borrados ya que vern afectado el normal funcionamiento de la aplicacin. En la parte derecha aparecen los botones que nos permiten editar y eliminar componentes que fueron anteriormente aadidos, as como tambin acceder a la ventana del cdigo experto que nos permite insertar cdigo fcilmente a nuestra aplicacin.
Pg. 8
Aparece la Ventana principal con un panel y una serie de componentes que podemos utilizar en el diseo de nuestras ventanas.
Controls nos proporciona un conjunto de controles que podemos pegar en la ventana. Layout provee herramientas para colocar los elementos dentro de la ventana. La ventana principal de nuestra aplicacin tendr el siguiente aspecto tras haber pegado los controles adecuados, despus de la figura de abajo se especifican los nombres con que fueron identificados para luego ocuparlos en el cdigo principal.
Pg. 9
Static Text
Push Button
El aspecto de nuestra Task Window deber ser como la imagen de arriba. La identificacin de cada uno de los controles es la siguiente: El primer Radio Button ser llamado idc_libro El segundo Radio Button ser llamado idc_revista El primer Push Button ser llamado idc_ingresar El segundo Push Button ser llamado idc_modificar El tercer Push Button ser llamado idc_eliminar El cuarto Push Button ser llamado idc_listar El List Box ser llamado listado
El nombre de los controles es importante ya que los identifica en el cdigo para poder diferenciarlos. C.- DISEO DE VENTANAS DE TIPO DIALOG Un paso nuevo en este proyecto es la creacin de ventanas tipo Dialog, la cualidad de trabajar con este tipo de ventanas es que liberan de carga a la ventana principal (Task Window).
Pg.
10
11
Estos tres botones los crea por defecto, por lo que se proceder a quitarlos de la ventana. Una vez borrados se deja la dialog, de la siguiente forma:
Push Button
Edit Control
Los cuales poseen los siguientes nombres, para as poder identificarlos en el cdigo: El primer Edit Control ser llamado idc_nombre. El segundo Edit Control ser llamado idc_codigo. Los Edit Control de la fecha sern llamados idc_dia, idc_mes, idc_ao. Los Edit Control del autor sern llamados idc_nombre1, idc_paterno, idc_materno. Los Push Button sern llamados idc_ok (Guardar), idc_cancel (Salir).
Para la aplicacin que se est realizando se necesita crear tres Ventanas tipo Dialog aparte de la que se acaba de crear. Como la idea es la misma el proceso de creacin no se volver a repetir, solamente se mostrarn las ventanas con sus nombres para identificarlas despus en el cdigo.
Pg.
12
Edit Control
Push Button
Los nombres que tendrn los controles sern los siguientes para esta ventana: Los Edit Control de los datos del libro sern llamados idc_libro, idc_codigo, idc_dia, idc_mes, idc_ao. Los Edit Control de los datos del autor sern llamados idc_nombre1, idc_paterno, idc_materno. El Push Button que dice Guardar y Salir ser llamado idc_ok.
Edit Control
Push Button
Los nombres que tendrn los controles sern los siguientes para esta ventana: Los Edit Control sern llamados idc_ejemplar, idc_codigo, idc_nombre. El Push Button que dice Guardar y Salir ser llamado idc_ok.
Pg.
13
Edit Control
Push Button
Los nombres que tendrn los controles sern los siguientes para esta ventana: Los Edit Control sern llamados idc_ejemplar, idc_codigo, idc_nombre. Los Push Button sern llamados idc_ok (Guardar), idc_cancel (Salir).
D.- INSERTAR CODIGO DE LOS DIALOG AL PROGRAMA PRINCIPAL. El crear ventanas tipo Dialog (y para cualquier otro tipo de ventanas) no implica que se pueda acceder a ella directamente, por ejemplo, si se hiciera un botn para llamar a la ventana dialog Libro, se agregara el cdigo necesario para hacerlo, pero en el momento de la ejecucin marcara un error de falta de objeto. Esto sucede porque el programa principal una vez que se han creado las ventanas, necesita que sea insertado el cdigo para cada ventana que se haya creado con anterioridad. Los pasos para insertar el cdigo de cada ventana al programa principal son los siguientes: Se presiona el botn dialog situado en la parte izquierda de la figura.
Luego se realiza lo siguiente: Se marca al medio el Dialogo que se utiliza para agregar el cdigo. Luego se presiona el botn Code Expert situado en la parte derecha de la figura.
Pg.
14
El tipo de evento debe ser Window. Por ltimo el Evento debe ser e_Create. Una vez que estn bien y chequeados correctamente los pasos anteriores, se presiona el botn Default Code, situado en la parte derecha de la figura. Una vez presionado el botn Default Code, presionamos el botn Ok.
De manera similar realizamos el proceso de insercin de cdigo para los tres dilogos restantes, los cuales son: revista, mod_revista, mod_libro. E.- INSERTAR CDIGO EN EL PROGRAMA PRINCIPAL. Al momento de la creacin de un programa Visual Prolog crea 2 archivos (como se dijo anteriormente). Cada uno de los cuales contiene cdigo que sirve para la ejecucin de un programa en particular, el cdigo que se insertara deber hacerse con mucho cuidado ya que modificar dicho cdigo puede significar que la aplicacin no correr y darse cuenta donde esta el error es algo difcil de encontrar. Antes de insertar cdigo para los botones, se tiene que crear los dominios para poder hacer funcionar nuestra aplicacin con bases de datos, definiendo diferentes tipos de dominios.
Pg.
15
Se definir los siguientes tipos de datos en la parte principal del cdigo recientemente editado:
global domains material=libro(string Nom_lib,symbol Cod_lib,fecha Fecha,autor Autor); revista(integer N_ejemplar,symbol Cod_rev,string Nom_rev) fecha=fe(integer Dia,integer Mes,integer Ano) autor=aut(string Nombre,string Ap1,string Ap2) global database mat(material)
Lo que se hizo ac es definir tres tipos de datos material, fecha y autor. En la cual material puede ser de dos tipos libro o revista. Por ltimo la base de datos ser llamada mat, para todos los efectos de insercin, modificacin y eliminacin de datos. El siguiente paso es insertar o agregar el cdigo para los controles de la Task Window. Recordando un poco la Task Window tiene el siguiente aspecto:
Pg.
16
Para el Segundo Radio Button llamado idc_revista el cdigo deber ser el siguiente:
%BEGIN Task Window, idc_revista _CtlInfo task_win_eh(_Win,e_Control(idc_revista,_CtrlType,_CtrlWin,_CtlInfo),0):-!, A=win_GetCtlHandle(_Win,idc_libro), win_Check(A,checkbox_off), !. %END Task Window, idc_revista _CtlInfo
A continuacin se detallan la explicacin de las instrucciones: A=win_GetCtlHandle(_Win,idc_libro), asigna a la variable A el identificador del objeto idc_libro. win_Check(A,checkbox_off), chequea el estado del objeto identificado en la variable A. El parmetro checkbox_off permite no chequear el control.
Estas instrucciones permiten diferenciar, si se tratarn los libros o las revistas. El siguiente paso es ingresar el cdigo para los Push Button, el proceso de insercin de condigo es similar a la anterior, por lo cual solamente se mostrar el
Pg.
17
La explicacin para las instrucciones se detalla a continuacin: H=win_IsChecked(K), chequea el identificador que posee la variable K (verdadero o falso). H=checkbox_on, compara el valor obtenido arriba con checkbox_on(verdadero) o checkbox_on(falso). dlg_libro_create(_Win), ejecuta el dialogo llamado libro. dlg_Note("Ingreso","Debe Seleccionar Libro o Revista"), muestra un mensaje de advertencia en caso que no se cumplan las dos condiciones de arriba.
2.- Cdigo para el segundo Push Button llamado idc_modificar. Este botn tiene la finalidad de encontrar un elemento que ha sido seleccionado de la lista, para ello se obtiene el ndice de dicho elemento con la instruccin lbox_GetSelIndex, luego se implementa la instruccin lbox_GetItem, la cual devuelve el elemento seleccionado como un solo string. Lo extenso del cdigo se explica por que se debe separar el string obtenido en los campos que conforman la base de datos. Nota: Cmo no existe una instruccin modificar, la implementacin de esta se hace eliminando el elemento seleccionado, para luego volver a agregarlo pero modificado.
Pg.
18
Todas estas instrucciones sirven para ir separando el elemento seleccionado en la lista y dejarlo en varias
Es la continuacin para los datos que conforman la parte de libros de nuestra base de datos.
Pg.
19
Pg.
20
3.- Cdigo para el tercer Push Button llamado idc_eliminar. Este botn tiene la finalidad de encontrar un elemento que ha sido seleccionado de la lista y eliminarlo de la lista y de la base de datos, para ello se obtiene el ndice de dicho elemento con la instruccin lbox_GetSelIndex, luego se implementa la instruccin lbox_GetItem, la cual devuelve el elemento seleccionado como un slo string.
%BEGIN Task Window, idc_eliminar _CtlInfo task_win_eh(_Win,e_Control(idc_eliminar,_CtrlType,_CtrlWin,_CtlInfo),0):Ke=win_GetCtlHandle(_Win,idc_libro), He=win_IsChecked(Ke),%chequea que se ha seleccionado la opcin libro He=checkbox_on, W=win_GetCtlHandle(_Win,listado), INTEGER = lbox_GetSelIndex(W),%idem a modificar S=lbox_GetItem(W, INTEGER), %Nombre searchstring(S," ",A), str_len(S,Largo), A2=A-1, A3=A+5, L1=Largo-A-4, substring(S,1,A2,K3), substring(S,A3,L1,S2), %Cdigo searchstring(S2," ",A21), str_len(S2,Largo2), A22=A21-1, A31=A21+5, L2=Largo2-A21-4, substring(S2,1,A22,K4), substring(S2,A31,L2,S3), %dia Todas estas instrucciones searchstring(S3,"/",A41), str_len(S3,Largo3), sirven para ir separando el A42=A41-1, A43=A41+1, elemento seleccionado en la L3=Largo3-A41, substring(S3,1,A42,K5), lista y dejarlo en varias substring(S3,A43,L3,S4), str_int(K5,K6), %mes searchstring(S4,"/",A51), str_len(S4,Largo4), A52=A51-1, A53=A51+1, L4=Largo4-A51,
Pg.
21
Pg.
22
El proceso de eliminacin, lo que hace es eliminar el elemento de la lista y de la base de datos. Lo que hace es buscar el elemento en la lista, para eliminarlo conjuntamente en las dos partes, al final si no estn seleccionadas las opciones Libro o Revista entrega un mensaje al usuario de que Debe Seleccionar Algn elemento de la Lista. 4.- Cdigo para el cuarto Push Button llamado idc_listar. El proceso de listar elementos de la base de datos consiste en ir formateando los datos de manera de que puedan ser mostrados en pantalla con espacios de separacin y en fila.
%BEGIN Task Window, idc_listar _CtlInfo task_win_eh(_Win,e_Control(idc_listar,_CtrlType,_CtrlWin,_CtlInfo),0):K2=win_GetCtlHandle(_Win,listado), lbox_clear(K2),%limpia la lista para listar todos los elementos de la base de datos K=win_GetCtlHandle(_Win,idc_libro), H=win_IsChecked(K),%chequea que se ha seleccionado la opcin Libro. H=checkbox_on,!, mat(libro(A,B,fe(D,M,An),aut(N,Ap1,Ap2))),%obtiene los datos que pertenecen a libro K2=win_GetCtlHandle(_Win,listado), str_int(DD,D), str_int(MM,M), str_int(AA,An), concat(A," ",P1),%concatena la variable A con % y el resultado lo deja en P1. Junta todos los concat(B," ",P2), datos de la base concat(P1,P2,P3), de datos, y los concat(DD,"/",P4), muestra en la concat(MM,"/",P5), concat(P4,P5,P6), lista como un concat(AA," ",P7), solo string. concat(N," ",P8), concat(P7,P8,P9), concat(Ap1," ",P10), concat(Ap2," ",P11), Luego se hace concat(P10,P11,P12), lo mismo pero concat(P3,P6,P13), con las revistas.
Pg.
23
La tarea de trabajar con los dilogos es exactamente de la misma forma en que se trabaja en la Task Window, ya que solamente se esta tratando con Push Button. 5.- Codigo para insertar libro, evento control, del idc_ok
%BEGIN libro, idc_ok _CtlInfo dlg_libro_eh(_Win,e_Control(idc_ok,_CtrlType,_CtrlWin,_CtlInfo),0):-!, %dlg_mod_libro_eh(_Win,e_Create(_Creationdata),0):-!, % Obtiene los identificadores de los campos de texto P1=win_GetCtlHandle(_Win,idc_nombre), P2=win_GetCtlHandle(_Win,idc_codigo), P3=win_GetCtlHandle(_Win,idc_dia), P4=win_GetCtlHandle(_Win,idc_mes), P5=win_GetCtlHandle(_Win,idc_ao), P6=win_GetCtlHandle(_Win,idc_nombre1), P7=win_GetCtlHandle(_Win,idc_paterno), P8=win_GetCtlHandle(_Win,idc_materno), % Obtiene el texto asociado a los campos de texto A=win_GetText(P1), B=win_GetText(P2), D=win_GetText(P3), E=win_GetText(P4), F=win_GetText(P5), G=win_GetText(P6), H=win_GetText(P7), I=win_GetText(P8), %Convierte string a integer, esto es para la fecha str_int(D,DD), str_int(E,EE), str_int(F,FF), % Inserta en la base de datos asserta(mat(libro(A,B,fe(DD,EE,FF),aut(G,H,I)))), !. %END libro, idc_ok _CtlInfo
Pg.
24
Estas instrucciones van puestas en la creacin de la ventana mod_libro y sirven para complementar la idea de implementar la instruccin modificar ya que rescata los datos de la base, los muestra en pantalla y luego los elimina, para que puedan ser grabados y queden solo una vez en la base de datos.
Todo esto va en la parte de clauses de la ventana mod_libro. 7.- Codigo para insertar Revista, evento control, del idc_ok
%BEGIN Revista, idc_ok _CtlInfo dlg_revista_eh(_Win,e_Control(idc_ok,_CtrlType,_CtrlWin,_CtlInfo),0):-!, P1=win_GetCtlHandle(_Win,idc_ejemplar), P2=win_GetCtlHandle(_Win,idc_codigo), P3=win_GetCtlHandle(_Win,idc_nombre), A=win_GetText(P1), B=win_GetText(P2), D=win_GetText(P3), str_int(A,AA), %Graba en la Base de Datos asserta(mat(revista(AA,B,D))), !. %END Revista, idc_ok _CtlInfo
Pg.
25
9.- Cdigo para modificar botn guardar y salir del dialog modificar libro.
%BEGIN mod_libro, idc_ok _CtlInfo dlg_mod_libro_eh(_Win,e_Control(idc_ok,_CtrlType,_CtrlWin,_CtlInfo),0):-!, P1=win_GetCtlHandle(_Win,idc_nombre), P2=win_GetCtlHandle(_Win,idc_codigo), P3=win_GetCtlHandle(_Win,idc_dia), P4=win_GetCtlHandle(_Win,idc_mes), P5=win_GetCtlHandle(_Win,idc_ao), P6=win_GetCtlHandle(_Win,idc_nombre1), P7=win_GetCtlHandle(_Win,idc_paterno), P8=win_GetCtlHandle(_Win,idc_materno), A=win_GetText(P1), B=win_GetText(P2), D=win_GetText(P3), E=win_GetText(P4), F=win_GetText(P5), G=win_GetText(P6), H=win_GetText(P7), I=win_GetText(P8), %mat(libro(A,B,fe(D,E,F),aut(G,H,I))), str_int(D,DD), str_int(E,EE), str_int(F,FF), asserta(mat(libro(A,B,fe(DD,EE,FF),aut(G,H,I)))), win_Destroy(_Win), !. %END mod_libro, idc_ok _CtlInfo
Pg.
26
APLICACION
ELIMINAR
COMPONENTES
Lo primero que se va a hacer ser eliminar los componentes que no son necesarios en la ejecucin de la aplicacin que se est tratando. Eliminacin de men emergente Para la eliminacin de los mens emergentes que no estn siendo utilizados se realizan los siguientes pasos: Dirigirse al botn men situado en la parte izquierda de la pantalla.
Para borrar el men se debe ir eliminando los submen y el cdigo introducido automticamente por el sistema, para ello presionamos el botn Code Expert.
Pg.
27
Terminado el paso anterior nos queda eliminar por completo los submen para ello se hace doble clic en el elemento del experto llamado Task Men, teniendo que aparecer la siguiente ventana: Lo que queda es eliminar cada uno de los submens situados en la parte central. Para eliminarlos presionamos solamente el botn Del, situado en la parte izquierda de la pantalla. Se hace lo mismo con cada uno de los tres elementos situados en la parte central.
Pg.
28
Sub-men id_file
Sub-Men id_help
La insercin de cdigo para los mens emergentes es de forma similar que los dems tipos de controles, como por ejemplo, Push Button. Radio Button, etc. La nica diferencia que en vez de ir a Control se selecciona la opcin Men en tipo de evento (Event Type), se puede apreciar mejor en la siguiente figura.
Una vez agregada la clusula, con el botn Add Clause, se presiona el botn Edit Clause, para as poder ingresar el cdigo correspondiente a cada submen.
Pg.
29
Terminados correctamente con los pasos anteriores, se esta en condiciones de ejecutar nuestra aplicacin, para ello nos dirigimos a la barra de herramientas y presionamos el botn Run
o simplemente presionamos la tecla F9. As el aspecto de la aplicacin en modo usuario es de la siguiente manera:
Pg.
30
Pg.
31
Pg.
32
Pg.
33
Pg.
34
Pg.
35
7.- Abrir Los datos guardados previamente se volvern a cargar despus de dar click en el submen ABRIR.
Pg.
36
Pg.
37
En el desarrollo de la aplicacin anterior se comento detalladamente el proceso de creacin de cada uno de los botones, cajas de texto, etc. Por lo que ya no se volver a redundar en lo mismo y solo se especificarn los nombres para cada control. La primera caja de texto ser llamada idc_edicion1. La segunda caja de texto ser llamada idc_edicion2. El primer botn Insertar en Orden ser llamado idc_insertar_en_orden. El segundo botn Insertar al Final ser llamado idc_insertar_al_final. El tercer botn Insertar al Principio ser llamado idc_insertar_al_principio. El cuarto botn Borrar Uno ser llamado idc_borra1. El quinto botn Borrar Todos ser llamado idc_borrar_todos.
Pg.
38
39
/* Manejo de las cajas de edicion */ editar1(_Win):M=win_GetCtlHandle(_Win, idc_edicion1), l(L), term_str (list, L, S), win_setText(M, S). editar2(_Win):M=win_GetCtlHandle(_Win, idc_edicion2), S=win_getText(M), str_int(S, E), l(L), insertaro(E, L, NL), assert(l(NL), listainteger),!. editar2(_):-dlg_Error ("Elemento errneo"). editar3(_Win):M=win_GetCtlHandle(_Win, idc_edicion2), S=win_getText(M), str_int(S, E), l(L), insertarp(E, L, NL), assert(l(NL), listainteger),!. editar3(_):-dlg_Error ("Elemento errneo").
Pg.
40
41
dlg_listaenteros_eh(_Win,e_Control(idc_insertar_al_principio,_CtrlType,_CtrlWin,_Ctl Info),0):-!, editar3(_Win), editar1(_Win), !. 4.- para idc_borrar1 dlg_listaenteros_eh(_Win,e_Control(idc_borra1,_CtrlType,_CtrlWin,_CtlInfo),0):-!, editar5(_Win), editar1(_Win), !. 5.- para idc_borrar_todos.
42
Pg.
43
VII.- RECOMENDACINES.
Recomendamos se facilite la informacin contenida en el presente documento a los alumnos de aos inferiores. De igual manera se recomienda mostrar las aplicaciones con una interfaz grfica, para hacer ms llamativo el lenguaje de programacin, los programas que se muestran solo en consola como si fuese D.O.S son aburridos y tediosos.
VIII.- BIBLIOGRAFIA.
1.- http://www.programatium.com/prolog.htm#3.
2.- http://www.programacion.com/tutorial/prolog3/. 3.- http://www.programacion.com/tutoriales/prolog/. 4.- http://www.dsic.upv.es/~jsilva/fin/idr/transparencias2.pdf. 5.- http://www.dsic.upv.es/~jsilva/fin/idr/transparencias3.ppt. 6.- http://www.dsic.upv.es/~jsilva/fin/idr/transparencias4.ppt.
Pg.
44