Sie sind auf Seite 1von 26

SISTEMA EXPERTO PARA

CONTROL DE PLAGAS EN EL
TABACO

MARCOS HERNANDEZ MARTINEZ
GUSTAVO DE JESUS GONZALES NAVA
GILBERTO XOLOT PIO
GUADALUPE LUNA DOMINGUEZ
PABLO ANTONIO MENDOZA GUZMAN
JOSE DANIEL PEREA VERGARA
Descripcin breve
Sistema experto realizado en Prolog con el fin de proporcionar una solucin o posible
tratamiento para controlar algunas plagas



El diagnstico de plagas se realiza a partir de los sntomas observados referente
al tipo de cultivo. En funcin de la plaga diagnosticada y de su grado de
gravedad, se dictamina un plan de tratamiento para la planta infectada. Un
plan de tratamiento debe especificar un conjunto de recursos necesarios, un
mtodo de aplicacin, un tiempo de aplicacin y otros consejos adicionales. La
principal problemtica que hay en esta zona de los Tuxtlas especialmente para los
productores de tabaco es que en ocasiones en sus cultivos cuentan con algunas
plagas que no saben cmo combatirlo y necesitan ayudan de un asesor tcnico
para tratar esa plaga, es por eso que se desarroll este sistema experto el cual
facilitara al productor tomar cierta medida para su cultivo.



Se utiliz un grafo AND-OR (Figura 3.1) para poder representar el conocimiento
adquirido, el cual fue luego transformado a reglas de inferencia usando lgica de
primer orden, utilizado por el lenguaje Prolog.









Ejecutar el Sistema Experto para la Deteccin y Control de Plagas en algunos
sembros de Tabaco. El sistema comienza mostrndose la siguiente pantalla, el
cual tiene un men Iniciar, Integrantes y Salir. Para poder realizar la ejecucin es
necesario de descargar e instalar dos programas necesarios para la ejecucin del
sistema experto. Dichos programas se mencionaran a continuacin, despus de
haber instalado los dos programas, abrimos SWI-Prolog Editor y damos archivo,
abrir y seleccionamos el archivo.pl, ir a la pestaa iniciar y darle consultar o F9 y
por ltimo en la parte inferior solo escribimos main.
Programas necesarios:
SWI-Prolog
SWI-Prolog Editor

Al dar clic en el men Iniciar se presentara la primera pantalla de preguntas, a
travs de la cual se comenzara el proceso de inferencia. Se debe escoger una
sola opcin para poder continuar de lo contrario aparecer un mensaje de error,
indicando que solo se puede elegir una opcin.


En esta pantalla podr escoger la pregunta que ms se ajuste a las caractersticas
que presentan los insectos que atacan el cultivo de tabaco. Despus de
elegir una de las opciones, dar clic en siguiente.

Si anteriormente se escogi la 1 opcin aparecer la siguiente pantalla, si no se
escoge opciones que le permitan concluir al sistema de que plaga se trata,
entonces aparecer un mensaje indicando que la plaga no est determinada en
el sistema.


Cuando escogemos las opciones que se muestran en la pantalla y luego damos
clic en siguiente se muestra la imagen de la plaga que est atacando al cultivo de
tabaco. En este caso la plaga es provocada por la larva del insecto pinnaspis.


En esta pantalla podr escoger la pregunta que ms se ajuste a las caractersticas
que presentan los insectos que atacan el cultivo de tabaco. Despus de
elegir una de las opciones, dar clic en siguiente.

Si anteriormente se escogi la 2 opcin aparecer la siguiente pantalla, si no se
escoge opciones que le permitan concluir al sistema de que plaga se trata,
entonces aparecer un mensaje indicando que la plaga no est determinada en
el sistema.


Cuando escogemos las opciones que se muestran en la pantalla y luego damos
clic en siguiente se muestra la imagen de la plaga que est atacando al cultivo de
tabaco. En este caso la plaga es provocada por el chinche.


En esta pantalla podr escoger la pregunta que ms se ajuste a las caractersticas
que presentan los insectos que atacan el cultivo de tabaco. Despus de
elegir una de las opciones, dar clic en siguiente.

Si se escogi la 3 opcin aparecer la siguiente pantalla, si no se escoge
opciones que le permitan concluir al sistema de que plaga se trata,
entonces aparecer un mensaje indicando que la plaga no est determinada en
el sistema.


Cuando escogemos las opciones que se muestran en la pantalla y luego damos
clic en siguiente se muestra otra pantalla en la que se seguir preguntando ms
caracterstica para poder inferir que plaga es la que est infectando los cultivos de
tabaco.



Siguiendo en la misma opcin que es la tercera se tiene las siguientes pantallas



En la opcin de integrantes se encuentran los integrantes quienes colaboraron con
el desarrollo de este sistema experto.


A continuacin se muestra el cdigo de este sistema experto (experto.pl).

resp('si').
resp('no').
%MOSCA BLANCA
pregunta('se ubica en el enves de la hoja ?',X):-resp(X).
pregunta('tiene presencia de hojas picadas?',X):-resp(X).
pregunta('tiene presencia de hongos ?',X):-resp(X).
pregunta('tiene secreciones melosas ?',X):-resp(X).
%POLILLA
pregunta('tiene las hojas comidas?',X):-resp(X).
pregunta('tiene brotes comidas?',X):-resp(X).
pregunta('tiene la medula de tallo destruida ?',X):-resp(X).
pregunta('tiene el follaje destruida ?',X):-resp(X).
%PULGONES
pregunta('presenta las yemas de los huevesillos caidas ?',X):-resp(X).
pregunta('presenta hojas pequeas?',X):-resp(X).
pregunta('presenta brotes muertos',X):-resp(X).
pregunta('son brotes pequeos?',X):-resp(X).
pregunta('presenta huevecillos?',X):-resp(X).
pregunta('presenta pocas hojas?',X):-resp(X).
pregunta('tiene hojas marchitas?',X):-resp(X).
pregunta('tiene las hojas encrespadas?',X):-resp(X).
pregunta('hojas con tamao normal',X):-resp(X).
pregunta('hojas en estado normal?',X):-resp(X).
pregunta('presenta ceniza blanca en hojas?',X):-resp(X).
pregunta('enegrecimiento de brotes?',X):-resp(X).
pregunta('enegrecimiento de flores?',X):-resp(X).
pregunta('enegrecimiento de hojas?',X):-resp(X).
%ACARINA
pregunta('tiene manchas blanquesinas ?',X):-resp(X).
pregunta('tiene las hojas secas ?',X):-resp(X).
pregunta('tiene perdida de hojas?',X):-resp(X).
%CHINCHES
pregunta('tiene las hojas picadas?',X):-resp(X).
pregunta('tiene las hojas encojidas?',X):-resp(X).
%MOSCA MINADORA

pregunta('tiene las hojas minadas?',X):-resp(X).

%QUEREZA
pregunta('presenta larvas blancas?',X):-resp(X).
pregunta('la larva es alargada?',X):-resp(X).
pregunta('se encuentra en las hojas?',X):-resp(X).
pregunta('la larva es pequea?',X):-resp(X).
pregunta('la larva es grande?',X):-resp(X).
pregunta('se encuentra en el suelo?',X):-resp(X).
pregunta('se encuentra en los tallos?',X):-resp(X).
%PRINCIPAL
pregunta('es una larva ?',X):-resp(X).
pregunta('ataca hojas ?',X):-resp(X).
pregunta('presenta hongos ?',X):-resp(X).

main:-
new(D,dialog('SISTEMA EXPERTO DE PLAGAS DE TABACO')),
send(D,size,size(560,400)),
send(D,colour,colour(red)),
send(D, append, new(Menu, menu_bar)),
send(Menu, append, new(Iniciar, popup(iniciar))),
send(Menu, append, new(Integrantes, popup(integrantes))),
send(Menu, append, new(Salir,popup(salir))),
send_list(Iniciar, append,
[ menu_item(iniciar, message(@prolog,pp))
]),
send_list(Integrantes, append,
[ menu_item(autores, message(@display, inform, 'MARCOS
HERNANDEZ MARTINEZ\nGUSTAVO DE JESUS GONZALES
NAVA\nGILBERTO XOLOT PIO\nGUDALUPE LUNA DOMINGUEZ\nPABLO
ANTONIO MENDOZA GUZMAN\nJOSE DANIEL PEREA VERGARA'))
]),
send_list(Salir,append,exit),
mostrar('C:/Programa/tabaco.bmp',D,Menu),
send(D,open,point(200,200)).

halt.qsave_program('c:/ejecutable.exe', [stand_alone(true), goal(main)]).

mostrar(V,D,M):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1),
send(D1,below(M)).

pp:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('es una larva ?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('ataca hojas ?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('presenta hongos ?')),
send_list(Pre3,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),


new(B,button(siguiente,and(message(@prolog,principal,Pre1?selection,Pre2?sele
ction,Pre3?selection),message(D,destroy)))),
send(D,append,B),
send(D,default_button,siguiente),
send(D,open,point(350,350)).



%PARA LARVAS
principal(P1,P2,P3):-
pregunta('es una larva ?',P1),P1='si',
pregunta('ataca hojas ?',P2),P2='no',
pregunta('presenta hongos ?',P3),P3='no',
pl.

principal(P1,P2,P3):-
pregunta('es una larva ?',P1),P1='no',
pregunta('ataca hojas ?',P2),P2='si',
pregunta('presenta hongos ?',P3),P3='no',
ph.

principal(P1,P2,P3):-
pregunta('es una larva ?',P1),P1='no',
pregunta('ataca hojas ?',P2),P2='no',
pregunta('presenta hongos ?',P3),P3='si',
pho.

principal(_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'ELIJA SOLO UNA OPCION',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).

pho:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('hojas con tamao normal')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('enegrecimiento de brotes?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('hojas en estado normal?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('presenta ceniza blanca en hojas?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('enegrecimiento de flores?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('enegrecimiento de hojas?')),
send_list(Pre6,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append(Pre6)),
new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,hongos,Pre1?selection,Pre2?selection,
Pre3?selection,Pre4?selection,Pre5?selection,Pre6?selection))),
send(D,append,B1),
send(D,append,B),

send(D,open,point(300,300)).

hongos(P1,P2,P3,P4,P5,P6):-
pregunta('hojas con tamao normal',P1),P1='si',
pregunta('enegrecimiento de brotes?',P2),P2='no',
pregunta('hojas en estado normal?',P3),P3='si',
pregunta('presenta ceniza blanca en hojas?',P4),P4='si',
pregunta('enegrecimiento de flores?',P5),P5='no',
pregunta('enegrecimiento de hojas?',P6),P6='no',

ppm.

hongos(P1,P2,P3,P4,P5,P6):-
pregunta('hojas con tamao normal',P1),P1='no',
pregunta('enegrecimiento de brotes?',P2),P2='si',
pregunta('hojas en estado normal?',P3),P3='no',
pregunta('presenta ceniza blanca en hojas?',P4),P4='no',
pregunta('enegrecimiento de flores?',P5),P5='si',
pregunta('enegrecimiento de hojas?',P6),P6='si',

ppm.
hongos(_,_,_,_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'PLAGA NO DETERMINADA',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).

%MOSCAS O PULGONES
ppm:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('tiene las hojas encrespadas?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('tiene hojas marchitas?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('tiene presencia de hojas picadas? ')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('presenta pocas hojas?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('se ubica en el enves de la hoja ?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('tiene secreciones melosas ?')),
send_list(Pre6,append,[si , no]),
new(Pre7,menu('presenta huevecillos?')),
send_list(Pre7,append,[si,no]),
new(Pre8,menu('presenta las yemas de los huevesillos caidas ?')),
send_list(Pre8,append,[si,no]),

send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append(Pre6)),
send(D,append,Pre7),
send(D,append,Pre8),


new(B1,button(atras,and(message(@prolog,pho),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,pulmos,Pre1?selection,Pre2?selection,
Pre3?selection,Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,Pre8
?selection))),
send(D,append,B1),
send(D,append,B),
send(D,open).
pulmos(P1,P2,P3,P4,P5,P6,P7,P8):-
pregunta('tiene las hojas encrespadas?',P1),P1='si',


pregunta('tiene hojas marchitas?',P2),P2='si',

pregunta('tiene presencia de hojas picadas?',P3),P3='no',
pregunta('presenta pocas hojas?',P4),P4='si',
pregunta('se ubica en el enves de la hoja ?',P5),P5='no',
pregunta('tiene secreciones melosas ?',P6),P6='si',
pregunta('presenta huevecillos?',P7),P7='si',
pregunta('presenta las yemas de los huevesillos caidas ?',P8),P8='si',

pf2('C:/Programa/pulgones.jpg','PULGONES','C:/Programa/pulgonest.jpg').
pulmos(P1,P2,P3,P4,P5,P6,P7,P8):-
pregunta('tiene las hojas encrespadas?',P1),P1='no',
pregunta('tiene hojas marchitas?',P2),P2='no',
pregunta('tiene presencia de hojas picadas?',P3),P3='si',
pregunta('presenta pocas hojas?',P4),P4='no',
pregunta('se ubica en el enves de la hoja ?',P5),P5='si',
pregunta('tiene secreciones melosas ?',P6),P6='si',
pregunta('presenta huevecillos?',P7),P7='no',
pregunta('presenta las yemas de los huevesillos caidas ?',P8),P8='no',
pf2('C:/Programa/moscab.jpg','MOSCA BLANCA','C:/Programa/moscabt.jpg').

pulmos(_,_,_,_,_,_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'ELIJA SOLO UNA OPCION',font('times','roman',16))),
send(D,append,L),
send(D,open,point(300,300)).
%PANTALLA DE HOJAS
ph:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('tiene las hojas picadas?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('tiene manchas blanquesinas ?')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('tiene las hojas minadas?')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('tiene las hojas encojidas?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('tiene las hojas secas ?')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('tiene perdida de hojas?')),
send_list(Pre6,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append(Pre6)),
new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,hojas,Pre1?selection,Pre2?selection,Pr
e3?selection,Pre4?selection,Pre5?selection,Pre6?selection))),
send(D,append,B1),
send(D,append,B),
send(D,open,point(300,300)).


%CHINCHES
hojas(P1,P2,P3,P4,P5,P6):-
pregunta('tiene las hojas picadas?',P1),P1='si',
pregunta('tiene manchas blanquesinas ?',P2),P2='no',
pregunta('tiene las hojas minadas?',P3),P3='no',
pregunta('tiene las hojas encojidas?',P4),P4='si',
pregunta('tiene las hojas secas ?',P5),P5='no',
pregunta('tiene perdida de hojas?',P6),P6='no',

pf1('C:/Programa/chinches.jpg','CHINCHES','C:/Programa/chinchest.bmp').
%Mosca minadora terminado
hojas(P1,P2,P3,P4,P5,P6):-
pregunta('tiene las hojas picadas?',P1),P1='no',
pregunta('tiene manchas blanquesinas ?',P2),P2='no',
pregunta('tiene las hojas minadas?',P3),P3='si',
pregunta('tiene las hojas encojidas?',P4),P4='no',
pregunta('tiene las hojas secas ?',P5),P5='no',
pregunta('tiene perdida de hojas?',P6),P6='no',

pf1('C:/Programa/moscam.jpg','MOSCA
MINADORA','C:/Programa/moscamt.bmp').

%ACARINA
hojas(P1,P2,P3,P4,P5,P6):-
pregunta('tiene las hojas picadas?',P1),P1='no',
pregunta('tiene manchas blanquesinas ?',P2),P2='si',
pregunta('tiene las hojas minadas?',P3),P3='no',
pregunta('tiene las hojas encojidas?',P4),P4='no',
pregunta('tiene las hojas secas ?',P5),P5='si',
pregunta('tiene perdida de hojas?',P6),P6='si',

pf2('C:/Programa/acarina.jpg','ACARINA','C:/Programa/acarinat.bmp').

hojas(_,_,_,_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'PLAGA NO DETERMINADA',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).

pl:-new(D,dialog('PREGUNTAS')),
new(Pre1,menu('presenta larvas blancas?')),
send_list(Pre1,append,[si , no]),
new(Pre2,menu('la larva es grande? ')),
send_list(Pre2,append,[si,no]),
new(Pre3,menu('tiene las hojas comidas? ')),
send_list(Pre3,append,[si,no]),
new(Pre4,menu('tiene la medula de tallo destruida ?')),
send_list(Pre4,append,[si,no]),
new(Pre5,menu('la larva es alargada? ')),
send_list(Pre5,append,[si,no]),
new(Pre6,menu('se encuentra en las hojas? ')),
send_list(Pre6,append,[si , no]),
new(Pre7,menu('se encuentra en el suelo? ')),
send_list(Pre7,append,[si,no]),
new(Pre8,menu('se encuentra en los tallos? ')),
send_list(Pre8,append,[si,no]),
new(Pre9,menu('tiene brotes comidas? ')),
send_list(Pre9,append,[si,no]),
new(Pre10,menu('tiene el follaje destruida ? ')),
send_list(Pre10,append,[si,no]),
send(D,append(Pre1)),
send(D,append,Pre2),
send(D,append,Pre3),
send(D,append,Pre4),
send(D,append,Pre5),
send(D,append(Pre6)),
send(D,append,Pre7),
send(D,append,Pre8),
send(D,append,Pre9),
send(D,append,Pre10),

new(B1,button(atras,and(message(@prolog,pp),message(D,destroy)))),

new(B,button(siguiente,message(@prolog,larvas,Pre1?selection,Pre2?selection,Pr
e3?selection,Pre4?selection,Pre5?selection,Pre6?selection,Pre7?selection,Pre8?s
election,Pre9?selection,Pre10?selection))),
send(D,append,B1),
send(D,append,B),
send(D,open,point(300,300)).







%PINNASPIS

larvas(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):-
pregunta('presenta larvas blancas?',P1),P1='si',
pregunta('la larva es grande?',P2),P2='no',
pregunta('tiene las hojas comidas?',P3),P3='no',
pregunta('tiene la medula de tallo destruida ?',P4),P4='no',
pregunta('la larva es alargada?',P5),P5='si',
pregunta('se encuentra en las hojas?',P6),P6='si',
pregunta('se encuentra en el suelo?',P7),P7='no',
pregunta('se encuentra en los tallos?',P8),P8='no',
pregunta('tiene brotes comidas?',P9),P9='no',
pregunta('tiene el follaje destruida ?',P10),P10='no',
pf3('C:/Programa/pinnaspis.jpg','PINNASPIS','C:/Programa/pinnaspist.bmp').
%ICERVA PURCHASI
larvas(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):-
pregunta('presenta larvas blancas?',P1),P1='no',
pregunta('la larva es grande?',P2),P2='si',
pregunta('tiene las hojas comidas?',P3),P3='no',
pregunta('tiene la medula de tallo destruida ?',P4),P4='no',
pregunta('la larva es alargada?',P5),P5='no',
pregunta('se encuentra en las hojas?',P6),P6='no',
pregunta('se encuentra en el suelo?',P7),P7='si',
pregunta('se encuentra en los tallos?',P8),P8='si',
pregunta('tiene brotes comidas?',P9),P9='no',
pregunta('tiene el follaje destruida ?',P10),P10='no',
pf3('C:/Programa/pinnaspis.jpg',' ICERVA PUTCHASI').


%LARVAS DE POLILLAS
larvas(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):-
pregunta('presenta larvas blancas?',P1),P1='no',
pregunta('la larva es grande?',P2),P2='no',
pregunta('tiene las hojas comidas?',P3),P3='no',
pregunta('tiene la medula de tallo destruida ?',P4),P4='si',
pregunta('la larva es alargada?',P5),P5='no',
pregunta('se encuentra en las hojas?',P6),P6='no',
pregunta('se encuentra en el suelo?',P7),P7='no',
pregunta('se encuentra en los tallos?',P8),P8='no',
pregunta('tiene brotes comidas?',P9),P9='no',
pregunta('tiene el follaje destruida ?',P10),P10='si',

pf1('C:/Programa/polilla.jpg','POLILLA','C:/Programa/polillast.jpg').
%BARRENEDORES
larvas(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10):-
pregunta('presenta larvas blancas?',P1),P1='no',
pregunta('la larva es grande?',P2),P2='no',
pregunta('tiene las hojas comidas?',P3),P3='si',
pregunta('tiene la medula de tallo destruida ?',P4),P4='no',
pregunta('la larva es alargada?',P5),P5='no',
pregunta('se encuentra en las hojas?',P6),P6='no',
pregunta('se encuentra en el suelo?',P7),P7='no',
pregunta('se encuentra en los tallos?',P8),P8='no',
pregunta('tiene brotes comidas?',P9),P9='si',
pregunta('tiene el follaje destruida ?',P10),P10='no',

pf1('C:/Programa/larvasp.jpg','LARVAS DE POLILLA','C:/Programa/polillast.jpg').





larvas(_,_,_,_,_,_,_,_,_,_):-new(D,dialog('ERROR')),
new(L,label(l,'PLAGA NO DETERMINADA',font('times','roman',16))),
send(D,append,L),
send(D,open,point(350,350)).









image(X):-new(D,dialog('PLAGA')),
mostrar1(X,D),
% new(B,label(salir,message(D,destroy))),
%send(D,append,B),
send(D,open).




mostrar1(V,D):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1).



pf1(X,Y,Z):-new(D,dialog('IMAGEN DE LA PLAGA')),
mostrar2(X,D,20,30),
send(D, append(label(n,'INSECTOS'))),
send(D, append(label(n,Y))),
mostrar2(Z,D,20,350),
send(D,open).

f1(X,Y):-new(F,frame('IMAGEN DE LA PLAGA')),
send(F,append(new(F1,browser))),
mostrar(X,F1),
send(new(D,dialog),below(F1)),
send(D, append(label(n,'INSECTOS'))),
send(D, append(label(n,Y))),


send(F,open,point(300,300)).


pf2(X,Y,Z):-new(D,dialog('IMAGEN DE LA PLAGA')),
mostrar2(X,D,20,40),
new(L,label(n,'TRATAMIENTO')),
send(D, append(label(n,'ACARO'))),
send(D, append(label(n,Y))),
send(D,append,L),
mostrar2(Z,D,20,350),
send(D,open).

f2(X,Y):-new(F,frame('IMAGEN DE LA PLAGA')),
send(F,append(new(F1,browser))),
mostrar(X,F1),
send(new(D,dialog),below(F1)),
send(D, append(label(n,'ACARO'))),
send(D, append(label(n,Y))),

send(F,open,point(300,300)).

pf3(X,Y,Z):-new(D,dialog('IMAGEN DE LA PLAGA')),
mostrar2(X,D,20,30),
new(L,label(n,'TRATAMIENTO')),
send(D, append(label(n,'INSECTO'))),
send(D, append(label(n,'QUEREZA'))),
send(D, append(label(n,Y))),
send(D,append,L),
mostrar2(Z,D,20,350),
send(D,open).

f3(X,Y):-new(F,frame('IMAGEN DE LA PLAGA')),
send(F,append(new(F1,browser))),
mostrar(X,F1),
send(new(D,dialog),below(F1)),
send(D, append(label(n,'INSECTO'))),
send(D, append(label(n,'QUEREZA'))),
send(D, append(label(n,Y))),

send(F,open,point(300,300)).

mostrar(V,D):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1).

mostrar2(V,D,X,Y):- new(I, image(V)),
new(B, bitmap(I)),
new(F2, figure),
send(F2, display, B),
new(D1, device),
send(D1, display, F2),
send(D, display, D1),
send(D,display,D1,point(X,Y)).

Das könnte Ihnen auch gefallen