Prolog - nesecito que den una idea de como hacer este ejerc

 
Vista:

nesecito que den una idea de como hacer este ejerc

Publicado por reinier (1 intervención) el 20/06/2006 17:07:01
Crear un programa que permita hacer exámenes teóricos de determinados temas de manera automatizada. Para ello, se guardarán en memoria hechos que expresan un determinado acontecimiento histórico. Por ejemplo, podría ser:
hecho(protesta_de_baragua, [maceo], cuba, fecha(15,marzo,1878)).
hecho(desembarco_granma, [fidel,raul,che, ...]), cuba, fecha(2,diciembre,1956)).
Esto se corresponde con el nombre del hecho, los participantes, el lugar en que ocurrió y la fecha. El programa debe, de manera aleatoria, realizar preguntas al usuario como las siguientes:
¿- Quién hizo protesta_de_baragua?
¿- Qué ocurrió el 15 de marzo de 1868?
¿- Dónde ocurrió protesta_de_baragua?
¿- Que hizo maceo el 15 de marzo de 1868?
¿- En que mes fue la protesta_de_baragua?
En las que el usuario debe teclear una respuesta y el programa la evalúa. Por otra parte, el programa también puede hacer preguntas de Verdadero o Falso como las siguientes:
¿- fidel hizo protesta_de_baragua?
¿- desembarco_del_granma ocurrió en cuba?
En este caso el programa puede hacer preguntas con diferentes hechos (para preguntas con respuesta Falso), o del mismo hecho (para correctas). En todos los casos el programa debe evaluar la respuesta dada por el usuario..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:nesecito que den una idea de como hacer este ej

Publicado por Iran (3 intervenciones) el 24/11/2010 05:40:50
hechale un vistaso a esto y dime si te cuadra......

%hecho(protesta_de_baragua,[maceo],cuba,fecha(15,marzo,1878)).
%hecho(desembarco_granma,[fidel],cuba,fecha(2,dicimbre,1956)).
contrasena(ee,ee).
comenzar():-write('Seleccione la opcion a realizar: '),nl,
write('Para responder cuestionario p : '), nl,
write('Para consultar la base de datos introducir c : '),nl,
write('Para modificar base de datos introducir m : '),
read(O), opcion(O).
opcion(O):- O=:="p",preguntar(1),!.
opcion(O):- O=:="c", write('entre el hecho_historico:'),read(N),
write('entre el protagonista:'),read(LP),
write('entre el lugar:'),read(L),
write('entre la fecha:'),read(F),
consulta(N,LP,L,F),!.
opcion(O):- O=:="m",modificar,!.
opcion(O).
modificar:- write('Entrar Usuario : '), read(U), write('Entrar Contrasena : '), read(C), contrasena(U,C),!, write('Si desea insertar entre i,si desea eliminar entre e : '), read(A), verif(A).
verif(A):- A=:="i",insertar(hecho1(H,P,L,F)),!.
verif(A):- A=:="e", eliminar(hecho1(H,P,L,F)),!.
verif(A):- write('Error en dato, entre nuevo valor: '), read(E), verif(E).

insertar(hecho1(H,[P],L,F(D,M,A))):-write('entre el hecho_historico:'),read(H),
write('entre el protagonista:'),read(P),
write('entre el lugar:'),read(L),
write('entre la fecha:'),read(F),
asserta(hecho1(H,P,L,F)).
eliminar(S):- write('entre el hecho_historico:'),read(H),
write('entre el protagonista:'),read(P),
write('entre el lugar:'),read(L),
write('entre el fecha:'),read(F),
retract(hecho1(H,P,L,F)).

consulta(N,LP,L,F):- hecho1(N,LP,L,F).
preguntar(0).
preguntar(R):-R=1,!,preguntar1().
preguntar(R):-R=2,!,preguntar2().
preguntar(R):-R=3,!,preguntar3().
preguntar(R):-R=4,!,preguntar4().
preguntar(R):-R=5,!,preguntar5().
preguntar(R):-R=6,!,preguntar6().
preguntar(R):-R=7,!,preguntar7().
preguntar(R):-R=8,!,preguntar8().
preguntar(R):-R=9,!,preguntar9().
preguntar(R):-R=10,!,preguntar10().
preguntar1():-write('Quien hizo protesta de baragua:'),read(P),hecho1(protesta_de_baragua,P,_,_),!,write(yes),nl,preguntar(2).
preguntar1():-write(no),nl,preguntar(2).
preguntar2():-write('Que ocurrio el 15 de marzo de 1878:'),read(H),hecho1(H,_,_,fecha(15,marzo,1878)),!,write(yes),nl,preguntar(3).
preguntar2():-write(no),nl,preguntar(3).
preguntar3():-write('Donde ocurrio protesta_de_baragua:'),read(L),hecho1(protesta_de_baragua,_,L,_),!,write(yes),nl,preguntar(4).
preguntar3():-write(no),nl,preguntar(4).
preguntar4():-write('Que hizo maceo el 15 de marzo de 1878:'),read(H),hecho1(H,[maceo],_,fecha(15,marzo,1878)),!,write(yes),nl,preguntar(5).
preguntar4():-write(no),nl,preguntar(5).
preguntar5():-write('En que mes fue la protesta_de_baragua:'),read(M),hecho1(protesta_de_baragua,_,_,F(_,M,_)),!,write(yes),nl,preguntar(6).
preguntar5():-write(no),nl,preguntar(6).
preguntar6():-write(' El desembarco del granma ocurrio en cuba:'),read(L),L=:="y",!,write(correcto),nl,preguntar(7).
preguntar6():-write(incorrecto),nl,preguntar(7).
preguntar7():-write('fidel hizo protesta_de_baragua:'),read(H),H=:="n",!,write(correcto),nl,preguntar(8).
preguntar7():-write(incorrecto),nl,preguntar(8).
preguntar8():-write('Que hizo fidel en cuba:'),read(H),hecho1(H,[fidel],cuba,_),!,write(yes),nl,preguntar(9).
preguntar8():-write(no),nl,preguntar(9).
preguntar9():-write('Cuando ocurrio el desembarco del granma:'),read(F),hecho1(desembarco_granma,_,_,F),!,write(yes),nl,preguntar(10).
preguntar9():-write(no),nl,preguntar(10).
preguntar10():-write('Marti participo en el desembarco del granma:'),read(H) ,H=:="n",!,write(correcto),nl,preguntar(0).
preguntar10():-write(incorrecto),nl,preguntar(0).
Solución
| ?- comenzar.
Seleccione la opcion a realizar:
Para responder cuestionario p :
Para consultar la base de datos introducir c :
Para modificar base de datos introducir m : |: "m".
Entrar Usuario : |: ee.
Entrar Contrasena : |: ee.
Si desea insertar entre i,si desea eliminar entre e : |: "i".
entre el hecho_historico:|: protesta_de_baragua.
entre el protagonista:|: [maceo].
entre el lugar:|: cuba.
entre la fecha:|: fecha(15,marzo,1878).
yes

| ?- comenzar.
Seleccione la opcion a realizar:
Para responder cuestionario p :
Para consultar la base de datos introducir c :
Para modificar base de datos introducir m : |: "m".
Entrar Usuario : |: ee.
Entrar Contrasena : |: ee.
Si desea insertar entre i,si desea eliminar entre e : |: "i".
entre el hecho_historico:|: desembarco_granma.
entre el protagonista:|: [fidel].
entre el lugar:|: cuba.
entre la fecha:|: fecha(2,dicimbre,1956).
yes

| ?- comenzar.
Seleccione la opcion a realizar:
Para responder cuestionario p :
Para consultar la base de datos introducir c :
Para modificar base de datos introducir m : |: "p".
Quien hizo protesta de baragua:|: [maceo].
yes
Que ocurrio el 15 de marzo de 1878:|: protesta_de_baragua.
yes
Donde ocurrio protesta_de_baragua:|: cuba.
yes
Que hizo maceo el 15 de marzo de 1878:|: protesta_de_baragua.
yes
En que mes fue la protesta_de_baragua:|: marzo.
yes
El desembarco del granma ocurrio en cuba:|: "y".
correcto
fidel hizo protesta_de_baragua:|: "n".
correcto
Que hizo fidel en cuba:|: desembarco_granma.
yes
Cuando ocurrio el desembarco del granma:|: fecha(2,dicimbre,1956).
yes
Marti participo en el desembarco del granma:|: "n".
correcto
yes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar