1
« en: Martes 1 de Enero de 2008, 22:34 »
hola amigos.. nose como correr este programa de prolog, esqe este trabaja creo con base de datos o no se pero no me corre...
me sale este mensaje:
undeclared predicate misspelling or not supported on chosen platform makewindow
espero que me ayuden porfavor, ya que recien me inicio en este programa.
gracias.
el codigo es:
DATABASE
xsi(string)
xno(string)
PREDICATES
opciones(integer)
informacion(integer)
main()
averia(integer,string)
si(string)
no(string)
clear_facts
recuerda(string,symbol)
pregunta(string)
respuesta(string,symbol)
solucion(string)
GOAL
makewindow(1,0,11," PROGRAMA DE DIAGNOSTICO AUTOMOTRIZ ",1,0,24,80),
makewindow(2,14,11," DETECCION DE AVERIA ",2,20,23,41),
makewindow(3,4,11,"OPCION",22,70,3,9),
makewindow(4,14,11," AVERIA O DEFECTO ",9,1,5,60),
makewindow(5,14,11," REPARACION REQUERIDA ",14,1,10,68),
makewindow(6,14,11," LOCALIZACION DE AVERIA ",4,2,4,27),
makewindow(7,4,11,"RESP",9,64,3,6),
makewindow(8,4,11,"GRACIAS POR SU CONSULTA",12,27,3,28),
main.
CLAUSES
main():-
shiftwindow(1),clearwindow,
shiftwindow(2),clearwindow,
shiftwindow(3),clearwindow,
shiftwindow(4),clearwindow,
shiftwindow(5),clearwindow,
opciones(Op),
shiftwindow(1),clearwindow,
shiftwindow(5),shiftwindow(4),
informacion(Op).
main():-
shiftwindow(1),clearwindow,
shiftwindow(2),clearwindow,
shiftwindow(3),clearwindow,
shiftwindow(4),clearwindow,
shiftwindow(5),clearwindow,
write(" Lo siento, pero este programa no cuenta con la informacion suficiente para determinar el tipo de averia buscada"),
clear_facts.
opciones(Op):-
shiftwindow(2),
write(" Arranque del motor (1)\n",
" Rendimiento del motor (2)\n",
" Sistema de refrigeracion (3)\n",
" Bateria (4)\n",
" Sistema de alimentacion (5)\n",
" Lubricacion (6)\n",
" Instrumentos de control (7)\n",
" Transmision (8)\n",
" Frenos (9)\n",
" Suspension (10)\n",
" Direccion (11)\n",
" Ruedas y neumaticos (12)\n",
" Ruidos en el motor (13)\n",
" Sistema de arranque (14)\n",
" Sistema generador de DC (15)\n",
" Dinamo (16)\n",
" Alternador (17)\n",
" Luces y alumbrado (18)\n",
" Limpia-parabrisas (19)\n",
" Bomba electrica de gasolina (20)\n",
" SALIR (0)"),
shiftwindow(3),readint (Op).
informacion(0):-
shiftwindow(1),clearwindow,
shiftwindow(8).
informacion(1):-
shiftwindow(6),clearwindow,
write(" ARRANQUE DEL MOTOR "),
shiftwindow(4),clearwindow,
averia(1,X1),
write(X1),
shiftwindow(5),clearwindow,
solucion(X1),
clear_facts.
informacion(2):-
shiftwindow(6),clearwindow,
write(" RENDIMIENTO DEL MOTOR "),
shiftwindow(4),clearwindow,
averia(2,X2),
write(X2),
shiftwindow(5),clearwindow,
solucion(X2),
clear_facts.
si(X) if xsi(X),!.
si(X) if not(xno(X)) and pregunta(X).
no(X) if xno(X),!.
no(X) if not(xsi(X)) and pregunta(X).
respuesta(_,si):-!.
respuesta(_,no):-!.
respuesta(X,_)regunta(X).
pregunta(X):-
shiftwindow(4),clearwindow,
write(X),
shiftwindow(7),clearwindow,
write(" "),
readln(Resp),
upper_lower(Resp,Replay),
respuesta(X,Replay),
recuerda(X,Replay).
recuerda(X,si):-
asserta(xsi(X)).
recuerda(X,no):-
asserta(xno(X)),
fail.
clear_facts:-
retract(xsi(_)),fail.
clear_facts:-
retract(xno(_)),fail.
clear_facts:-
shiftwindow(5),
write("\n\n Presione cualquier tecla"),
readchar(_),
main,
clearwindow.
averia(1,"Bateria con poca carga, generalmente por defectos en la dinamo") if
si("El motor de arranque no puede hacer girar el motor (faros con luz muy debil)") and
si("Bateria con poca carga, generalmente por defectos de la dinamo").
averia(1,"Bateria defectuosa") if
si("El motor de arranque no puede hacer girar el motor (faros con luz muy debil)") and
si("Bateria defectuosa").
averia(2,"Insuficiente llegada de gasolina") if
si("El motor tiene una aceleracion muy pobre") and
si("Insuficiente llegada de gasolina").
averia(2,"Desreglaje de balancines") if
si("El motor tiene una aceleracion muy pobre") and
si("Desreglaje de balancines").
averia(2,"Poca compresion en el motor")if
si("El motor tiene una aceleracion muy pobre") and
si("Poca compresion en el motor").
averia(2,"Defectos en el mecanizmo del avance automatico") if
si("El motor tiene una aceleracion muy pobre") and
si("Defectos en el mecanizmo del avance automatico").
averia(2,"Bujia comunicada. Defectos en el sistema de encendido") if
si("El motor falla o `ratea'") and
si("Bujia comunicada. Defectos en el sistema de encendido").
averia(2,"Cables de alta tension estropeados en el emplazamiento de los antiparasitarios") if
si("El motor falla o `ratea'") and
si("Cables de alta tension estropeados en el emplazamiento de los antiparasitarios").
averia(2,"Entrada de aire al colector") if
si("El motor falla o `ratea'") and
si("Entrada de aire al colector").
averia(2,"Insuficiente llegada de combustible; agua en el mismo") if
si("El motor falla o `ratea'") and
si("Insuficiente llegada de combustible; agua en el mismo").
averia(2,"Carburador inundado") if
si("El motor falla o `ratea'") and
si("Carburador inundado").
averia(2,"Sistema de escape parcialmente obstruido") if
si("El motor falla o `ratea'") and
si("Sistema de escape parcialmente obstruido").
averia(2,"Puesta a punto incorrecta") if
si("El motor tiene poca potencia") and
si("Puesta a punto incorrecta").
averia(7,"Luz de control averiada o presion de aceite insuficiente") if
si("El testigo de presion de aceite no se apaga despues de arrancar") and
si("Luz de control averiada o presion de aceite insuficiente").
averia(7,"Bajo nivel de aceite en el carter") if
si("El testigo de presion de aceite se enciende al tomar una curva") and
si("Bajo nivel de aceite en el carter").
averia(7,"Presion insuficiente de aceite a bajo regimen de revoluciones") if
si("El testigo de presion de aceite solo se apaga cuando el motor aumenta de regimen") and
si("Presion insuficiente de aceite a bajo regimen de revoluciones").
solucion("Bateria con poca carga, generalmente por defectos de la dinamo"):-
write(" Carguese la bateria y verifiquese el sistema de carga").
solucion("Bateria defectuosa"):-
write(" Sustituyase").
solucion("Cables de la bateria corroidos o conexiones flojas"):-
write(" Limpiense los bornes de la bateria o sustituyanse los\n",
"cables. Aprietense todos las terminales").
solucion("Motor de arranque agarrotado"):-
write(" Liberese").
solucion("Agua en los cilindros o motor gripado"):-
write(" Quitense las bujias y recurrase a un taller").
solucion("Demasiados depositos de carbonilla en la camara de combustion"):-
write(" Limpiese la carbonilla").
solucion("Junta de culata quemada o deteriorada"):-
write(" Sustituyase").
solucion("Culata agrietada o alabeada"):-
write(" Mecanicese la cara de la culata").
solucion("Contactos del ruptor sucios, quemados o incorrectamente reglados"):-
write(" Investiguese el estado de los contactos y efectuese un reglaje si fuera preciso").
solucion("Bujias defectuosas"):-
write(" Limpiense, ajustense o sustituyanse").
solucion("Carburador sucio"):-
write(" Limpiese y ajustese el carburador").
solucion("Reglaje defectuoso de balancines"):-
write(" Compruebense y efectuese un reglaje").
solucion("Agua o suciedad en el sistema de alimentacion de combustible"):-
write(" Limpiense el carburador, el filtro y la mayor parte posible del circuito").
solucion("Nivel insuficiente de gasolina en el carburador"):-
write(" Ajustese el nivel del flotador").
solucion("Suministro insuficiente de combustible"):-
write(" Bomba electrica: limpiense los contactos y las conexiones, especialmente la",
" masa, y asegurese que este limpio el respiradero del deposito",
"Si a pesar de todo no funciona, sustituyase. Bomba mecanica: limpiense perfectamen",
"te la bomba y los filtros. Compruebese que no existan entradas de aire en la conduccion",
" del deposito a la bomba").
solucion("Falta de gasolina"):-
write(" Viertase gasolina en el deposito o compruebese el sistema de alimentacion").