Programación de un sistema experto con Visual Prolog 7.5
INDICE DE FIGURAS %ensaje explicati&o explicati&o al usuario de la finalidad finalidad de la aplicación aplicación experta' 1 Figura 01: $antalla con %ensaje general de de la la ap aplicación ex experta Figura 02: $antalla ge
1(
$antalla la con opci opción ón ) su#opci su#opciones ones de la la aplic aplicaci ación ón exper experta ta Figura 03: $antal
2*
la aplicación experta 21 Figura 04: $antalla donde se solicita no%#re al usuario de la $antal alla la de #ien #ien&e &eni nida da al usuar usuario io de la apli aplicac cació iónn expe expert rtaa Figura 05: $ant $antallaa de consult consultas as de la apli aplicac cación ión expert expertaa 2+ Figura 06: $antall
Figura 07: $antalla de resultados de la aplicación experta 2,
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2
22
Programación de un sistema experto con Visual Prolog 7.5
PROGRAMACIÓN DE UN SISTEMA EPERTO EPERTO EN MEDICINA λ
Ingresar Ingresar al -isual $rolog $rolog ) selecc selecciona ionarr la opc opción ión Pr!"#$% ) luego luego la opción opción N#& con lo cual aparecer. una interfa/ en la 0ue se escri#ir. el no%#re del pro)ecto en este caso SISTEMA as3 %is%o %is%o se de#er de#er.. ingre ingresa sarr la info infor%a r%aci ción ón EPERTO MEDICO MEDICO EN NEURO' NEURO'OG( OG(A A as3 solicitada para la creación del !iste%a Experto teniendo en cuenta 0ue en el “tipo de pro)ecto” se elegir. Pr!"#$% )i*+ MDI,
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página
Programación de un sistema experto con Visual Prolog 7.5
4inal%ente acer clic6 en Fi*i-., λ
7uego -isual -isual $rolog ejecutar. auto%.tica%ente el proceso de co%pilación ) lin6eado lin6eado con lo 0ue se genera la aplicación por defecto' 7uego para ejecutar la aplicación se selecciona la opción
/ui+ ) luego la opción E#$u%# lo 0ue co%o resultado origina la interfa/ de la aplicación 0ue se %uestra a continuación'
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página !
Programación de un sistema experto con Visual Prolog 7.5
λ
En este pun punto to es i%port i%portant antee indica indicarr 0ue dentro dentro de la carpeta carpeta Ta-i Ta-i*+!& *+!& se encuentran un conjunto de arci&os ) una carpeta T!!ar- 0ue luego se tra#ajar. 8T!!ar- se puede eli%inar seleccionando la opción Pr!"#$% Pr!"#$% T!!ar T!!ar dentro de la &entana A--ig*#+ T!!ar- para lo 0ue pri%ero se de#e acer clic6 con el #otón dereco del %ouse so#re el arci&o Ta-i*+!&,&i* 0ue es uno uno de los arc arci& i&os os 0ue se encuen encuentr traa dent dentro ro de la carpet carpetaa Ta-i*+!& ) luego selecci selecciona onando ndo la opción opción A%%riu%#- luego la opci opción ón Pr!"#$% Pr!"#$% T!!ar!ar- dentro de la &entana
A--ig*#+ T!!arT!!ar- co%o se indicó )a anterior%ente ) final%ente aciendo clic6 en D##%#, Es posi#le 0ue luego T!!ar- se pueda &ol&er a agregar9 por aora es de inter:s sólo el arci&o %ediantee el cual cual con el #otón dereco dereco del %ouse ) la opción opción A%%riu%#- Ta-i*+!&, Ta-i*+!&,&i* &i* %ediant pode%os %odificar los atri#utos de la &entana ra3/ es decir Ta-i*+!& por eje%plo el nue&o t3tulo de la &entana ser. “ SISTEMA EPERTO EPERTO MEDICO EN NEUMO'OG(A ) se acti&a la opción Maii8#+ ) luego seleccionar el #otón O, !i se ejecuta nue&a%ente la aplicación se &er.n los ca%#ios tal co%o se %uestra a continuación'
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 5
Programación de un sistema experto con Visual Prolog 7.5
λ
Es de inter:s aora el arci&o Ta-M#*u,*u %ediante el cual se puede %odificar las opciones 0ue por defecto i%ple%enta -isual $rolog' Entonces pri%ero se ace do#le clic6 so#re el arci&o
Ta-M#*u,*u ) luego se eli%inar. todas las opciones %enos Fi# ) dentro de esta opción se eli%i eli%inar. nar. todas las su#opciones su#opciones %enos N#& ) Ei%' 7ueg 7uegoo el arci arci&o &o Ta-M#*u,*u de#e 0uedar as3
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página "
Programación de un sistema experto con Visual Prolog 7.5
λ
7as opc opcion iones es no eli%in eli%inadas adas se reno%#r reno%#rar.n ar.n de la siguie siguiente nte %anera %anera Fi# ; C!*-u%a N#& ;
Nu#9a Ei% ; Sair' 7a opción Nu#9a de#en de a#ilitarse )a 0ue por defecto est. desa#ilitada 80uitar el cec6 en la opción Di-a#+9 entonces el arci&o Ta-M#*u,*u de#e 0uedar as3
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 7
Programación de un sistema experto con Visual Prolog 7.5
λ
En este punto se de#e ejecutar nue&a%ente nue&a%ente la aplicación aplicación %ediante la opción /ui+ ) luego /ui+ con lo 0ue se o#ser&a la ad&ertencia ad&ertencia u# *! #- u-a+! # ;r#+i$a+! !*<#;A!u% !*<#;A!u%,, Esto significa 0ue 0ue a) a) un códi código go asoc asocia iado do a las las opci opcion ones es eli% eli%in inad adas as 0u 0uee est. est. de% de%.s en el arc arci& i&oo donde de#e% #e%os eli%inar nar Ta-i*+!&,;r! de don
a dico código' $ara ir al arc rci&o
Ta-i*+!&,;r! se ace do#le clic6 en el %ensaje de ad&ertencia' λ
El código a eli%inar es el siguiente class predicates onHelpAbout : window::menuItemListener. clauses onHelpAbout(TaskWin, _MenuTag:! _About"ialog # about"ialog::displa$(TaskWin.
λ
7uego en el %is%o arci&o se de#e %odificar en el siguiente código el &alor %ru# por =a-# para as3 eli%inar la opción i*+!& la 0ue no se eli%ina en %odo dise
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página #
Programación de un sistema experto con Visual Prolog 7.5
el 0ue de#e 0uedar as3 constants mdi%ropert$ : boolean # &alse. λ
=a%#i:n en el %is%o arci&o se reco%ienda %odificar la aparición de la &entana de %ensajes cuando se ejecuta la aplicación experta' $ara lograr esto se de#e %odificar el siguiente código predicates on'ow : window::sowListener. clauses on'ow(_, _)reation"ata:! _Message*orm # message*orm::displa$(Tis.
de la siguiente %anera predicates on'ow : window::sowListener. clauses on'ow(_, _)reation"ata. +_Message*orm # message*orm::displa$(Tis. λ
7uego de gra#ar ) cerrar lo necesario al ejecutarse la aplicación de#er3a %ostrarse la siguiente interfa/
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página $
Programación de un sistema experto con Visual Prolog 7.5
λ
En este punto del desarrollo de la aplicación se tra#ajar. for%ateando las opciones de la #arra 8%en 8%en>9 >9 de erra erra%i %ien enta tass >T!!ar? para para lo cual cual se a#re a#re aci acien endo do do do#l #lee clic clic6 6 el arc arci& i&oo
Pr!"#$%T!!ar,;r! 8se encuentra u#icado en la carpeta T!!ar- del pro)ecto9 ) el código 0ue de#er. 0uedar por el %o%ento se %uestra a continuación
implement proectToolbar open core, -pi"omains, -piToolbar, resourceIdenti&iers
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1%
Programación de un sistema experto con Visual Prolog 7.5
clauses create(%arent :! 'tatusar # statusar::newApplicationWindow(, 'tatus)ell # statusar)ell::new('tatusar, /, 'tatusar:cells :# 0'tatus)ell1, Toolbar # -piToolbar::create(st$le, %arent, controlList, set'tatusHandler(Toolbar, 2(Te3t :! 'tatus)ell:te3t :# Te3t4. + Tis code is maintained automaticall$, do not update it manuall$. 56:78:/7!87.7.8/59 constants st$le : -piToolbar::st$le # tb_top(. controlList : -piToolbar::control_list # 0 tb_ctrl(id_&ile_new,pusb(,resId(idb_ew*ileitmap,;ue-a consulta<;,5,5,
-piToolbar::separator,
tb_ctrl(id_edit_cut,pusb(,resId(idb_)utitmap,;'alir<;,5,5 1.
+ end o& automatic code end implement proectToolbar λ
7a intención del código anterior es 0ue el usuario pueda accesar a una nue&a consulta ) salir de la aplicación ta%#i:n de los #otones %ostrados en la #arra de erra%ientas del pro)ecto es decir
Pr!"#$%T!!ar por lo 0ue luego de gra#ar los ca%#ios ) cerrar las &entanas necesarias al ejecutar la aplicación se de#e o#ser&ar la siguiente interfa/
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 11
Programación de un sistema experto con Visual Prolog 7.5
λ
?ora ?o ra para para ter% ter%in inar ar con el for%a for%ate teoo del pro)ect pro)ectoo en funci función ón del #otón #otón opc opció iónn Sa Sair del
Pr!"#$%T!!ar se &a a escri#ir el código 0ue per%itir. 0ue cuando se seleccione el #otón opción en %ención se pueda salir de la aplicación' $ara esto nos ace%os do#le clic6 so#re el arci&o luego a#ri%os a#ri%os la carpeta carpeta Pr!"#$%T!!ar ) Ta-i*+!&,&i* luego a#ri%os la carpeta M#*u luego final%ente ace%os do#le clic6 so#re i+@#+i%@$u% con lo 0ue aparecer. un código del cual solo nos interesa el 0ue se %uestra a continuación )a 0ue luego se %odificar. predicates on=dit)ut : window::menuItemListener. clauses on=dit)ut(_'ource, _MenuTag.
4inal%ente el nue&o código 0uedar. as3 predicates on=dit)ut : window::menuItemListener. clauses on=dit)ut(_'ource, _MenuTag:! close(.
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 12
Programación de un sistema experto con Visual Prolog 7.5
λ
?l ejecutar la aplicación sea al seleccionar la opción Sair tanto del %en> principal o el #otón opció opc iónn Sair de del Pr!"#$%T!!ar se de#e ter%inar la ejecución de la aplicación' ?ora para finali/ar co%o )a se %encionó anterior%ente el for%ateo del pro)ecto en función de las opciones 0ue presentar. al usuario usuario de#e%os eli%inar a $a"a +# $#rrar a $a"a +# aii8ar ) a $a"a
+# i*ii8ar la interfa/ para lo cual ace%os clic6 con el #otón dereco so#re el arci&o luego seleccion selecciona%o a%oss la opción opción A%%riu%#- con lo 0ue en la interfa/ 0ue Ta-i*+!&,&i* ) luego aparece desacti&a%os las casillas C!-#/! Maii8#/! ) Mi*ii8#/! respecti&a%ente' λ
?l ejecutar la aplicación la interfa/ %ostrada ser. la siguiente
λ
El paso siguiente es en&iar al usuario un %ensaje 0ue expli0ue la finalidad de la aplicación aplicación pero este %ensaje de#e aparecer auto%.tica%ente luego 0ue se %uestra la interfa/ del punto anterior' $ara esto aciendo clic6 con el #otón dereco so#re la carpeta SISTEMA EPERTO MDICO
EN NEURO'OG(A seleccione la opción N#& i* N#& Pa$ag# ) luego elija el o#jeto Dia!g para luego escri#ir co%o co %o no%#re del Dialog +g#*-a"# ) luego acer clic6 en el #otón Cr#a%#' El proceso gr.fica%ente se %uestra a continuación Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1
Programación de un sistema experto con Visual Prolog 7.5
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1!
Programación de un sistema experto con Visual Prolog 7.5
λ
De#e eli%inar todos los #otones 0ue aparecen %enos O el cual se reno%#rar. con C!*%i*uar ) luego elija el o#jeto S%a%i$ T#% ) en la propiedad T#% escri#a un %ensaje explicando al usuario la finalidad del siste%a experto' 4inal%ente cierra el di.logo creado ) lo gra#a'
λ
Co% Co %o se dijo dijo ant anteri erior%e or%ent ntee el %ensa ensaje je crea creado do en el pu punt ntoo ante anteri rior or de#e de#e apar aparec ecer er auto%.tica%ente por lo 0ue para esto ace%os do#le clic6 en Ta-i*+!&,&i* con lo 0ue en la carpeta i*+!& ace%os do#le clic6 en el e&ento O*S.!& ) %odifica%os el siguiente código predicates on'ow : window::sowListener. clauses on'ow(_, _)reation"ata. +_Message*orm # message*orm::displa$(Tis.
escri#iendo el siguiente código predicates on'ow : window::sowListener. clauses
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 15
Programación de un sistema experto con Visual Prolog 7.5
on'ow(_, _)reation"ata:! + _Message*orm # message*orm::displa$(Tis. postAction(2 :! _ # dlgmensae::displa$(Tis 4. λ
?l ejecutar la aplicación de aparecer alg>n %ensaje de agregar las li#rer3as necesarias se ace clic6 en el #otón A++ A para 0ue final%ente apare/ca auto%.tica%ente el %ensaje creado'
λ
? continuación se de#er. crear un di.logo +g*!r# 8la propiedad =ext de este o#jeto de#er. cont ontener BS! con el %is% %is%oo proc proced edi% i%ie ient ntoo para para crea crear r BS!i$ i$i% i%u+ u+ +# *!r *!r## a u-uar u-uari! i!9 con
+g#*-a"# el cual de#er. 0uedar sin ning>n #otón de &entana 0ue trae por defecto el di.logo +g*!r#' 7uego se de#e colocar un #otón de co%ando deno%inado C!*%i*uar cu)o no%#re ser. %*$!*%i*uar@$%' @@@ λ
El o#jeti&o de +g*!r# es 0ue el usuario ingrese su no%#re en una caja de texto ) %ientras no lo aga no se podr. continuar' Entonces se de#e considerar un o#jeto tipo S%a%i$ T#% para el %ensaje de “I*gr#-# -u *!r# ;!r =a9!r, De#e a#er ta%#i:n ta%#i:n un E+i% C!*%r! para ingresar
λ
el no%#re del usuario el E+i% C!*%r! se lla%ar. #+*!r#@$%' ?ora se de#e crear un di.logo lla%ado +gi#*9#*i+a %ediante el %is%o procedi%iento 0ue para crear los di.logos anteriores 8recordar aciendo clic6 con el #otón dereco so#re la carpeta seleccio ione ne la opc opció iónn N#& i* N#& Pa$ag#?' En este di.logo de#e %ostrarse un MEDICO selecc %ensaje de #ien&enida al uso del siste%a al usuario' !e de#e tener en cuenta 0ue en este di.logo
λ
de#e capturarse el no%#re del usuario ingresado en el di.logo anterior +g*!r#, Entonces aora escri#ir el siguiente código al progra%ar el #otón de co%ando %*$!*%i*uar@$% en el +g*!r#,;r! predicates ontningresar)lick : button::click>esponder. clauses ontningresar)lick(_'ource # button::de&aultAction:!
)ontenido#ednombre_ctl:getTe3t(,
)ontenido?@;;,
close(, _ # dlgbien-enida::displa$(get%arent(, ednombre_ctl:getTe3t(, . ontningresar)lick(_'ource # button::de&aultAction:! -pi)ommon"ialogs::error(;Mensae del 'istema;,;Ingrese su nombre;.
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1"
Programación de un sistema experto con Visual Prolog 7.5
λ
En este este pun punto to se de#e de#er. r. %edi %edian ante te las las opci opcion ones es C! C!*-u *-u% %aa ) luego Nu#9a lla%ar al di.logo esto se ace ace do#l do#lee clic clic66 en el arc arci& i&oo Ta-i*+!&,&i* de la carpeta +g*!r# ) para esto
Ta-i*+!& para luego de la interfa/ 0ue aparece seleccionar la carpeta M#*u Ta-M#*u clic6 so#re i+@=i#@*#& con lo 0ue se de#er. co%pletar co%pletar el código 0ue i+@=i# ) luego acer do#le clic6 aparece por defecto con el siguiente predicates on*ileew : window::menuItemListener. clauses on*ileew(_'ource, _MenuTag:! _ # dlgnombre::displa$(Tis. λ
7uego al ejecutar la aplicación de aparecer alg>n %ensaje de agregar las li#rer3as necesarias se ace clic6 en el #otón A++ A con lo 0ue de#er3a ejecutarse ejecutarse sin ning>n pro#le%a pro#le%a asta el punto desarrollado'
λ
λ
?l ingresar el no%#re de usuario se de#e displa)ar un di.logo lla%ado dlg#ien&enida en donde apare apare/c /caa un %ensa %ensaje je de #ien #ien&en &enid idaa con con el no%#re no%#re de usuari usuarioo ingre ingresa sado' do' En el arci arci&o &o
+gi#*9#*i+a,$ de#e el código 0uedar as3 B CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC
)op$rigt (c 8/57 M$ )ompan$
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCB class dlgbien-enida : dlgbien-enida open core
predicates displa$ : (window %arent, string ame !@ dlgbien-enida "lgbien-enida.
constructors new : (window %arent, string ame.
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 17
Programación de un sistema experto con Visual Prolog 7.5
end class dlgbien-enida λ
En el di.logo +gi#*9#*i+a se coloca un S%a%i$T#%@$% el 0ue de#e ser del tipo Fa$% aria# con lo 0ue aora se lla%ar. -%a%i$T#%@$% 0uedando la propiedad T#% en #lanco' 4inal%ente de#e 0uedar solo el #otón !@$% el cual se reno%#rar. con la propiedad %#% con el no%#re
C!*%i*uar, λ
En el arci&o +gi#*9#*i+a,;r! parte del código a %odificar de#e 0uedar as3 clauses displa$(%arent,ame # "ialog :! "ialog # new(%arent,ame,
"ialog:sow(.
&acts name : string.
clauses new(%arent,ame :! name :# ame,
dialog::new(%arent,
generatedInitialiDe(, staticTe3t_ctl:setTe3t(string::&ormat(;+, te do$ la bien-enida,
con gusto te a$udarE. %resiona en )ontinuar por &a-or.;, name.
?ora se de#e crear un di.logo en el 0ue se reali/ar. las consultas al experto artificial' Este di.logo se lla%a +g$!*-u%a al cu.l en la propiedad T#% se de#er. escri#ir BC!*-u%a*+! a
#;#r%!' 4inal%ente a este punto en el di.logo creado se ca%#iar. la apariencia del #otón O por Sai este di.l di.log ogoo +g$!*-u%a se de#er.n poner los siguientes controles con sus Sairr, En este o
respecti&as propiedades An Pu-. /u%%!* el 0ue se deno%inar. %*+iag*!-%i$ar@$%, o
An S%a%i$T#%@$% para 0ue recepcione el no%#re del usuario usuario ingresado ingresado anterior%ente anterior%ente el 0ue de#e ser del tipo Fa$% aria# con lo 0ue aora se lla%ar. -%a%i$T#%@$% 0uedando la propiedad T#% en #lanco'
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1#
Programación de un sistema experto con Visual Prolog 7.5
o
An S%a%i$T 0ue se deno deno%i %ina nar. r. 8en 8en la prop propiiedad edad T#%9 BSi*%! S%a%i$T##%1@$% %1@$% el 0ue BSi*%!aa- a
-##$$i!*ar' o
An S%a%i S%a%i$T $T##%2@$ %2@$% % el 0ue se deno%inar. 8en la propiedad T#%9 BSi*%!a-
-##$$i!*a+!-' o
An 'i-% /! el 0ue se deno%inar. +i-;!*i#-@$%,
o
An 'i-% /! el 0ue se deno%inar. -##$$i!*a+!-@$%, o
An S%a%i$T 0ue se deno deno% %inar inar.. 8en 8en la prop propie ieda dadd T#%9 BE*=#r#+a+ S%a%i$T##%3@$% %3@$% el 0ue
+iag*!-%i$a+a' o
An E+i% C!*%r! deno%inado #+#*=#r#+a+@$% poniendo en #lanco la propiedad T#% por el %o%ento'
o
An S%a%i$T 0ue se deno deno% %inar. nar. 8en 8en la prop propiiedad edad T#%9 BTra%ai#*%! S%a%i$T##%4@$% %4@$% el 0ue
r#$!#*+a+!' o
An E+i% C!*%r! deno%inado #+%ra%ai#*%!@$% poniendo en #lanco la propiedad T#% por el %o%ento'
7o 0ue aora se de#e acer es 0ue cuando se lla%e a +g$!*-u%a auto%.tica%ente los s3nto%as disponi disponi#le #less de#en de#en aparece aparecerr en +i-;!*i#-@$%' $ara esto en la pesta
El código anterior se %odificar. 0uedando de la siguiente %anera predicates on'ow : window::sowListener. clauses on'ow(_'ource, _"ata:!
lbdisponibles_ctl:add(;'Fntoma_/5;,
lbdisponibles_ctl:add(;'Fntoma_/8;,
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 1$
Programación de un sistema experto con Visual Prolog 7.5
lbdisponibles_ctl:add(;'Fntoma_/9;,
lbdisponibles_ctl:add(;'Fntoma_/7;,
lbdisponibles_ctl:add(;'Fntoma_/G;.
?or ? oraa la idea idea es 0ue 0ue cuan cuando do el usua usuari rioo sele selecc ccio ione ne 8con 8con do do#l #lee clic clic69 69 un s3nt s3nto% o%aa de agregado do a -##$$i!*a+!-@$% eli%in.ndose auto%.tica%ente del +i-;!*i#-@$% este sea agrega pri%er 'i-% /! ) &ice&ersa es decir si el usuario desea eli%inar un s3nto%a seleccionado de pues lo de#e de#e sele selecci ccion onar ar con do# do#le le clic clic66 ) auto% auto%.t .tic ica% a%ent entee pasar pasar.. -##$$i!*a+!-@$% pues nue&a%ente a for%ar parte de +i-;!*i#-@$%' $ara esto en la pesta
onLbdisponibles"ouble)lick(_'ource.
El código anterior anterior se %odificar. de la siguiente %anera predicates onLbdisponibles"ouble)lick : listo3::double)lickListener. clauses
onLbdisponibles"ouble)lick(_'ource:!
lbdisponibles_ctl:getAll'elected(=,I,
=#0==_1,
I#0II_1,
lbseleccionados_ctl:add(==,
lbdisponibles_ctl:delete(II, .
onLbdisponibles"ouble)lick(_'ource.
?ora en la pesta
onLbseleccionados"ouble)lick(_'ource.
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2%
Programación de un sistema experto con Visual Prolog 7.5
λ
El código anterior anterior se %odificar. de la siguiente %anera predicates onLbseleccionados"ouble)lick : listo3::double)lickListener. clauses
onLbseleccionados"ouble)lick(_'ource:!
lbseleccionados_ctl:getAll'elected(=,I,
=#0==_1,
I#0II_1,
lbdisponibles_ctl:add(==,
lbseleccionados_ctl:delete(II,
. onLbseleccionados"ouble)lick(_'ource.
!e de#e aora lla%ar desde el di.logo +gi#*9#*i+a al di.logo +g$!*-u%a' $ara esto en el #otón C!*%i*uar 8es el #otón o6Bctl9 de +gi#*9#*i+a poner el siguiente código predicates onk)lick : button::click>esponder.
clauses onk)lick(_'ource # button::de&aultAction:!
close(, _ # dlgconsulta::displa$(get%arent(, name, .
?ora en el arci&o dlgconsulta'cl se de#e escri#ir el siguiente código B CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCC
)op$rigt (c 8/57 M$ )ompan$
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC CCCCB class dlgconsulta : dlgconsulta open core
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 21
Programación de un sistema experto con Visual Prolog 7.5
predicates displa$ : (window %arent, string ame !@ dlgconsulta "lgconsulta.
constructors new : (window %arent, string ame. end class dlgconsulta
En el arci&o dlgconsulta'pro se de#e escri#ir el siguiente código
clauses displa$(%arent,ame # "ialog :! "ialog # new(%arent,ame,
"ialog:sow(.
&acts nam : string.
clauses new(%arent,ame :!
nam:#ame,
dialog::new(%arent,
generatedInitialiDe(, staticTe3t_ctl:setTe3t(string::&ormat(;+, selecciona los reJuerimientos reJueridos.;, n
am.
4inal%ente se de#e escri#ir el código para el #otón %*+iag*!-%i$ar@$% para esto se ace do#le clic6 en el #otón %encionado con lo 0ue aparecer. el siguiente código predicates ontndiagnosticar)lick : button::click>esponder. clauses ontndiagnosticar)lick(_'ource # button::de&aultAction.
el 0ue se %odificar. de la siguiente %anera
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 22
Programación de un sistema experto con Visual Prolog 7.5
domains sintomas # stringC. &acts
diagnostico:(sintomas,string,string.
clauses
diagnostico(0;'Fntoma_/5;,;'Fntoma_/8;,;'Fntoma_/9;1,;=n&ermedad_/5_/8_/9;,;Trata
miento_/5_/8_/9;.
diagnostico(0;'Fntoma_/7;,;'Fntoma_/G;1,;=n&ermedad_/7_/G;,;Tratamiento_/7_/G;.
predicates ontndiagnosticar)lick : button::click>esponder. clauses ontndiagnosticar)lick(_'ource # button::de&aultAction:!
eden&ermedad_ctl:setTe3t(;;,
edtratamiento_ctl:setTe3t(;;,
'#lbseleccionados_ctl:getAll(,
diagnostico(',=,T,
eden&ermedad_ctl:setTe3t(=,
edtratamiento_ctl:setTe3t(T, . ontndiagnosticar)lick(_'ource # button::de&aultAction:!
eden&ermedad_ctl:setTe3t(;;,
edtratamiento_ctl:setTe3t(;;, -pi)ommon"ialogs::error(;Mensae del 'istema;,;o e3isten respuestas para los sFnto
mas seleccionados;.
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2
Programación de un sistema experto con Visual Prolog 7.5
EECUCIÓN DE 'A AP'ICACIÓN EPERTA EN MEDICINA Figura 01: $antalla con %ensaje explicati&o al usuario de la finalidad de la aplicación experta'
Fu#*%#: 8Ela#oración propia 2*1,9
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2!
Programación de un sistema experto con Visual Prolog 7.5
Figura 02: $antalla general de la aplicación experta'
Fu#*%#: 8Ela#oración propia 2*1,9
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 25
Programación de un sistema experto con Visual Prolog 7.5
Figura 03: $antalla con opción ) su#opciones de la aplicación experta'
Fu#*%#: 8Ela#oración propia 2*1,9
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2"
Programación de un sistema experto con Visual Prolog 7.5
Figura 04: $antalla donde se solicita no%#re al usuario de la aplicación experta'
Fu#*%#: 8Ela#oración propia 2*1,9
Figura 05: $antalla de #ien&enida al usuario de la aplicación experta' Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 27
Programación de un sistema experto con Visual Prolog 7.5
Fu#*%#: 8Ela#oración propia 2*1,9
Figura 06: $antalla de consultas de la aplicación experta'
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2#
Programación de un sistema experto con Visual Prolog 7.5
Fu#*%#: 8Ela#oración propia 2*1,9
Figura 07: $antalla de resultados de la aplicación experta'
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página 2$
Programación de un sistema experto con Visual Prolog 7.5
Fu#*%#: 8Ela#oración propia 2*1,9
SITIOS E/ $rol $rolog og
De&e De &ellop% op%ent ent
Cent Center er
8$DC 8$DC9' 9'
4ec 4eca a
en ttpFFF'&isual@prolog'co%
Tenorio Tenorio Cabrera Cabrera Julio Luis Luis
Página Página %
de
cons consul ultta
15 ener eneroo
2* 2*1+ 1+' '
Disp Dispon oni# i#lle