You are on page 1of 6

SISTEMAS EXPERTOS

Guía de Laboratorio con Visual Prolog

Profesor Ing. Ms. Julio Luis Tenorio Cabrera

UNIVERSIDAD NACIONAL DE TRUJILLO - EAP INGENIERÍA DE SISTEMAS


SISTEMAS EXPERTOS

LABORATORIO 01

1. Crear la carpeta: Lab 1 VIP y elegirla como carpeta para grabar los proyectos del
presente laboratorio, esto se hace a través del botón Browse.
2. En Project Name, escribir: Sistema Experto 01.
3. En Project Kind, elegir: MDI.
4. Mediante botón Next, elegir la opción Version Information y escribir los datos
respectivos, y luego click en el botón Ok. Se genera automáticamente el proyecto.
5. Mediante la opción Build del menú principal, y luego la opción Execute, ejecutar el
proyecto.
6. Al abrir la carpeta TaskWindow, se observa un archivo TaskWindow.win, en el que se
hará click con el botón derecho para luego elegir la opción Attributes, para realizar los
siguientes cambios:
a. Desactivar MaximizeBox y MinimizeBox.
b. Activar Maximized.
7. Luego hacer click en el botón Ok y ejecutar nuevamente el proyecto.
8. Ahora, se observa el archivo TaskMenu.mnu, en el que se debe hacer doble click para
modificar el menú que viene por defecto, de la siguiente manera:
a. Eliminar las opciones: File, Edit.
b. Dentro de la opción Help, eliminar todas las opciones menos la opción About la
que se debe renombrar con: Sistema Experto, y la opción Help se debe
renombrar con: Acerca de.
c. Agregar las opciones: Información, Consultar, Salir.
9. Luego, salir y grabar los cambios.
10. Luego ejecutar nuevamente el proyecto.
11. Al aparecer un Warning, hacer doble click y eliminar el código correspondiente. Así
también modificar el siguiente código:
mdiProperty : boolean = true.
Por

mdiProperty : boolean = false.

onShow(_, _CreationData) :-
_MessageForm = messageForm::display(This).
Por

Prof. Ing. Ms. Julio Luis Tenorio Cabrera - 1


SISTEMAS EXPERTOS

onShow(_, _CreationData).
%_MessageForm = messageForm::display(This).

12. Luego, salir y grabar los cambios.


13. Siempre dentro de la carpeta TaskWindow, ubicar el archivo AboutDialog.dlg, sobre el
cuál se debe hacer doble click para modificar, si se desea:
a. El título del formulario.
b. Descripción del Proyecto.
c. Versión del Proyecto.
d. Derechos de autor.
e. Nombre de la Organización.
14. Luego salir, grabar los cambios y ejecutar nuevamente el proyecto.
15. Ahora para programar la opción Salir, hacer doble click en el archivo TaskWindow.win,
luego abrir la carpeta Menu y abrir la opción TaskMenu en la que aparecerán las
opciones del menú modificado anteriormente, y se debe hacer doble click en la opción:
id_salir, en la que se modificará el siguiente código:
predicates
onSalir : window::menuItemListener.
clauses
onSalir(_Source, _MenuTag).
Por

predicates
onSalir : window::menuItemListener.
clauses
onSalir(_Source, _MenuTag):-
close().

16. Salir y grabar los cambios.


17. Finalmente, se debe eliminar el botón Cerrar de la ventana principal, ya que se ha
programado la opción Salir de menú principal. (Esto debe hacerlo el estudiante).
18. Grabar los cambios, salir y ejecutar nuevamente el proyecto.
19. Ahora, se agregarán dos formularios, donde en el primero se visualizará una explicación
sobre la naturaleza del proyecto y en el segundo se harán las consultas respectivas. Los
formularios son:
a. frm_informacion.
b. frm_consultas.
Para agregar el primer formulario, se debe hacer click con el botón derecho sobre la
carpeta general del proyecto: Sistema Experto 01, y elegir la opción: New in New
Package. Luego eligir el ítem Form para el cual se debe proceder a poner el nombre

Prof. Ing. Ms. Julio Luis Tenorio Cabrera - 2


SISTEMAS EXPERTOS

frm_informacion. Luego se debe hacer click sobre el botón Create. (En el caso de
visualizarse algún error, por el momento se ignora). Luego se debe eliminar los botones
Cancel y Help que por defecto se visualizan en el formulario creado. Por el momento se
recomienda cambiar el título del formulario mediante la propiedad Title, por el
siguiente: Información sobre el Sistema Experto.
20. Salir, grabar y ejecutar el proyecto. (Para la creación del segundo formulario, es decir,
frm_consultas, se deja como tarea al estudiante).
21. Ahora, para visualizar cada formulario creado al seleccionar la opción respectiva, se
procede de la siguiente manera:
Dentro de la carpeta TaskWindow, ubicar el archivo TaskWindow.win sobre el cuál se
debe hacer doble click y a continuación hacer doble click sobre la opción
id_informacion, la que se encuentra ubicada dentro de la opción TaskMenu la que se
encuentra dentro de la carpeta Menu.
Ahora modificar el siguiente código, como se muestra a continuación:
predicates
onInformación : window::menuItemListener.
clauses
onInformación(_Source, _MenuTag).
Por

predicates
onInformación : window::menuItemListener.
clauses
onInformación(_Source, _MenuTag):-
_=frm_informacion::display(This).

22. Salir y ejecutar el Proyecto, con lo que se debe visualizar el formulario referenciado al
seleccionar la opción Información del menú principal. (El proceso para la visualización
del formulario frm_consultar, se deja como tarea al estudiante).
23. Ahora, se debe agregar información en el formulario frm_informacion, referente al
proyecto. El tema ejemplo, es sobre enfermedades y síntomas. Para esto en el
formulario frm_informacion se debe agregar un control del tipo Static Text,
modificando su tamaño respectivo tan solo con el mouse. Pero antes de ello, se
recomienda eliminar los botones de maximizar, minimizar y cerrar, del formulario. Para
esto las propiedades:
a. CloseBox
b. MaximizeBox
c. MinimizeBox,

Prof. Ing. Ms. Julio Luis Tenorio Cabrera - 3


SISTEMAS EXPERTOS

se deben poner en False.


24. Ahora, en la propiedad Text del control agregado, proceder a escribir la siguiente
información, como ejemplo:
“El Sistema Experto, permite mostrar cuál es el síntoma principal de la enfermedad
sobre la cual se realiza la consulta. Por favor haga click sobre el botón OK, para
continuar.”
25. Salir, grabar y ejecutar el proyecto.
26. A continuación, se debe implementar los controles y código para el formulario
frm_consultas. Para esto, se debe agregar los siguientes controles al formulario:
a. Un Static Text, el cual mediante la propiedad Text, se debe modificar la
apariencia con el siguiente texto: Escriba nombre de la enfermedad.
b. Un Edit Control, el cual mediante la propiedad Name se debe modificar el
nombre por el de: edenfermedad_ctl. Ahora la propiedad Text debe quedar
vacía.
c. Un Static Text, el cual mediante la propiedad Text, se debe modificar la
apariencia con el siguiente texto: El síntoma principal de la enfermedad es.
d. Un Edit Control, el cual mediante la propiedad Name se debe modificar el
nombre por el de: edsintoma_ctl. Ahora la propiedad Text debe quedar vacía.
e. El botón Ok se debe renombrar con la propiedad Text, con Salir.
f. Agregar dos botones de comando, Push Button: Name=btnconsultar_ctl,
Text=Consultar y Name=btnlimpiar_ctl y Text=Limpiar datos.
27. Salir, grabar y ejecutar el proyecto.
28. Ahora, programar los botones del presente formulario, y se debe empezar con el botón
Limpiar, y dejar para el final el botón Consultar. Para esto hacer doble click sobre el
botón Limpiar con lo que debe aparecer el siguiente código:
predicates
onBtnlimpiarClick : button::clickResponder.
clauses
onBtnlimpiarClick(_Source) = button::defaultAction.

el que se debe modificar de la siguiente manera:

Prof. Ing. Ms. Julio Luis Tenorio Cabrera - 4


SISTEMAS EXPERTOS

predicates
onBtnlimpiarClick : button::clickResponder.
clauses
onBtnlimpiarClick(_Source) = button::defaultAction:-
edenfermedad_ctl:setText(""),
edsintoma_ctl:setText(""),
edenfermedad_ctl:setFocus().

29. Salir, grabar y ejecutar el proyecto.


30. Ahora, programar el botón Consultar, y se debe hacer doble click sobre él, con lo que
debe aparecer el siguiente código:
predicates
onBtnconsultarClick : button::clickResponder.
clauses
onBtnconsultarClick(_Source) = button::defaultAction.

el que se debe modificar de la siguiente manera:


facts
sintoma_de : (string,string).
clauses
sintoma_de("estornudo","gripe").
sintoma_de("dolor de cabeza","jaqueca").
sintoma_de("vómito","hepatitis").
predicates
onBtnconsultarClick : button::clickResponder.
clauses
onBtnconsultarClick(_Source) = button::defaultAction:-
Enfermedad=edenfermedad_ctl:getText(),
sintoma_de(Sintoma,Enfermedad),
edsintoma_ctl:setText(Sintoma),
!.
onBtnconsultarClick(_Source) = button::defaultAction:-
vpiCommonDialogs::error("Mensaje del Sistema Experto","No conozco síntoma para enfer
medad ingresada"),
edenfermedad_ctl:setText(""),
edenfermedad_ctl:setFocus().

31. Salir, grabar y ejecutar el proyecto.

Prof. Ing. Ms. Julio Luis Tenorio Cabrera - 5

You might also like