Advertisement
Guest User

adsadasd

a guest
Jul 29th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 4.45 KB | None | 0 0
  1. :- use_module(library(pce)).
  2. :- use_module(library(pce_style_item)).
  3. main:-
  4.     new(Menu, dialog('Sistema experto de hospital', size(500,500))),
  5.     new(L, label(nombre, 'Bienvenidos a su diagnostico')),
  6.     new(@texto, label(nombre, 'Segun la respuestas dadas tendra su resultado:')),
  7.     new(@respl, label(nombre, '')),
  8.     new(Salir, button('Salir', and(message(Menu,destroy), message(Menu, free)))),
  9.     new(@boton, button('Realizar test', message(@prolog, botones))),
  10.     send(Menu, append(L)), new(@btncarrera, button('�Diagnotico?')),
  11.     send(Menu,display,L,point(100,20)),
  12.     send(Menu,display,@boton,point(130,150)),
  13.     send(Menu,display,@texto,point(50,100)),
  14.     send(Menu,display,Salir,point(20,400)),
  15.     send(Menu,display,@respl,point(20,130)),
  16.     send(Menu,open_centered).
  17.  
  18. enfermedades(colesterol):- colesterol,!.
  19. enfermedades(diabetes):- diabetes,!.
  20. enfermedades(ebola):-ebola,!.
  21. enfermedades(gastritis):-gastritis,!.
  22. enfermedades(neumonia):-neumonia,!.
  23. enfermedades(parkinson):-parkinson,!.
  24. enfermedades('No estoy entrenado para darte ese diagnostico').
  25.  
  26.  
  27. colesterol :-
  28.     tiene_colesterol,
  29.     pregunta('�Tiene hinchazon en alguna extremidad?'),
  30.     pregunta('Tiene perdida del equilibrio?'),
  31.     pregunta('Tiene dolor de cabeza?'),
  32.     pregunta('Tiene amarillos los ojos?'),
  33.     pregunta('Tiene vision borrosa?'),
  34.     pregunta('Tiene  agitacion,en especial al caminar o al realizar actividades leve?'),
  35.     pregunta('Tiene dolor en el pecho?').
  36.  
  37. diabetes :-
  38.     tiene_diabetes,
  39.     pregunta('Tiene sed constante?'),
  40.     pregunta('Tiene hambre excesiva?'),
  41.     pregunta('Tiene perdida de peso inexplicable?'),
  42.     pregunta('Se siente fatigado?'),
  43.     pregunta('Tiene irritabilidad?'),
  44.     pregunta('Tiene vision borrosa?').
  45.  
  46. ebola :-
  47.     tiene_ebola,
  48.     pregunta('�Presenta dolores musculares?'),
  49.     pregunta('�Tiene v�mito y diarrea?'),
  50.     pregunta('�Presenta erupciones cutaneas?'),
  51.     pregunta('�Siente debilidad intensa?'),
  52.     pregunta('�Tiene dolor de garganta?').
  53.  
  54. gastritis :-
  55.     tiene_gastritits,
  56.     pregunta('�Tiene acidez estomacal?'),
  57.     pregunta('�Presenta aerofagia?'),
  58.     pregunta('�Tiene ausencia de hambre que en ocasiones puede producir perdida de peso?'),
  59.     pregunta('�Presenta heces de color negro o con sangrado?'),
  60.     pregunta('�Tiene n�useas?').
  61.  
  62. neumonia :-
  63.     tiene_neumonia,
  64.     pregunta('�Tiene dolores articulares?'),
  65.     pregunta('�Presenta dificultad para respirar?'),
  66.     pregunta('�Tiene fiebre?').
  67.  
  68. parkinson :-
  69.     tiene_parkinson,
  70.     pregunta('�Ha notado alg�n cambio perdida de movimiento espont�neo y autom�tico en alguna extremidad?'),
  71.     pregunta('�Tiene dolores articulares?'),
  72.     pregunta('�Ha presentado rigidez severa en alguna region muscular?'),
  73.     pregunta('Sufre de depresi�n o ha utilizado farmacos para tratar una enfermedad semejante?'),
  74.     pregunta('Presenta algun trastorno en el sue�o?').
  75.  
  76.  
  77. %desconocido :- se_desconoce_enfermedad.
  78.  
  79. tiene_colesterol:- pregunta("�Tiene adormecimiento en alguna extremidad?"),!.
  80. tiene_diabetes:- pregunta("Padece de orina frecuente?"),!.
  81. tiene_ebola:- pregunta('�Tiene fiebre?'),!.
  82. tiene_gastritits:-pregunta('Tiene dolor abdominal?'),!.
  83. tiene_neumonia:- pregunta('�Ha tenido tos constate los ultimos dos dias?'),!.
  84. tiene_parkinson:- pregunta('�Presenta temblor en alguna de las extremidades superiores del cuerpo?'),!.
  85.  
  86. :-dynamic si/1,no/1.
  87.  
  88.  
  89. preguntar(Problema):-new(Di, dialog('Examen Medico')),
  90.     new(L2, label(texto,'Responde las siguientes preguntas')),
  91.     new(La, label(prob,Problema)),
  92.  
  93.     new(B1,button(si,and(message(Di,return,si)))),
  94.     new(B2,button(no,and(message(Di,return,no)))),
  95.  
  96.     send(Di,append(L2)),
  97.     send(Di,append(La)),
  98.     send(Di,append(B1)),
  99.     send(Di,append(B2)),
  100.  
  101.     send(Di,default_button,si),
  102.     send(Di,open_centered),
  103.     get(Di,confirm,Answer),
  104.     write(Answer),send(Di,destroy),
  105.  
  106.  
  107.     ((Answer==si)->assert(si(Problema)); assert(no(Problema)),fail).
  108.  
  109. pregunta(S):- (si(S)->true; (no(S)->fail;preguntar(S))).
  110. limpiar:- retract(si(_)),fail.
  111. limpiar:- retract(no(_)),fail.
  112. limpiar.
  113.  
  114.  
  115. botones :-lim,
  116.     send(@boton,free),
  117.     send(@btncarrera,free),
  118.     enfermedades(Enter),
  119.     send(@texto, selection('De acuerdo con sus respuestas,usted padece de:')),
  120.     send(@respl, selection(Enter)),
  121.     new(@boton, button('Iniciar su evaluaci�n', message(@prolog, botones))),
  122.     send(Menu,display,@boton,point(40,50)),
  123.     send(Menu,display,@btncarrera,point(20,50)),
  124.     limpiar.
  125.  
  126. lim:- send(@respl, selection('')).
  127.  
  128. limpiar2:-
  129.     send(@texto,free),
  130.     send(@respl,free),
  131.     %send(@btncarrera,free),
  132.     send(@boton,free).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement