Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[PDEP]3. Negación y cuantificación 9. Universalidad, parte 1
Autor Mensaje
z423 Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 140
Agradecimientos dados: 66
Agradecimientos: 0 en 0 posts
Registro en: Mar 2015
Mensaje: #1
[PDEP]3. Negación y cuantificación 9. Universalidad, parte 1 Ejercicios Paradigmas de Programación
Ahora queremos saber si alguien está bien ubicado: esto ocurre cuando vive en una zona en la que están todos los destinos a los que quiere ir. Para eso, contamos con la nueva información de quiereIr/2:
quiereIr(fede, racing).
quiereIr(fede, montoto).
quiereIr(victoria, montoto).
quiereIr(tomas, montoto).
quiereIr(tomas, utn).
¿Pero cómo podemos hacer para saber si todos los lugares a donde quiere ir están en su zona? ¿Se te ocure alguna forma de resolverlo, usando sólo lo que vimos hasta ahora?
Escribí el predicado bienUbicado/1. Asumí que ya escribimos quiereIr/2 por vos.
¡Dame una pista!

Pensá que si en una zona están todos los lugares que uno quiere, eso significa... que no existe ningún lugar al que quiera ir y no esté en esa zona.
Y si las cosas se complican mucho, ¡delegá!
Si no recordás qué predicados ya existían, revisá la biblioteca .

Intente esto:
bienUbicado(Persona):- viveEn(Persona,Zona1), not
  (quiereIr(Persona,Lugar) && quedaEn(Lugar,Zona2)),
  Zona1\=Zona2.


y esto es lo que figura en la biblioteca:
viveEn(mariano, avellaneda).
viveEn(fede, avellaneda).
viveEn(victoria, versalles).
viveEn(rodrigo, villaBallester).
viveEn(tomas, nuniez).

quedaEn(utn, almagro).
quedaEn(utn, villaLugano).
quedaEn(exactas, nuniez).
quedaEn(river, nuniez).
quedaEn(racing, avellaneda).
quedaEn(montoto, palermo).
quedaEn(montoto, nuniez).
quedaEn(montoto, avellaneda).

tieneAuto(tomas).
tieneAuto(fede).

llegaFacil(batman, _).
llegaFacil(Persona, _) :-
tieneAuto(Persona).
llegaFacil(Persona, Destino) :-
viveEn(Persona, Zona),
quedaEn(Destino, Zona).

destinosProximos(Destino, OtroDestino) :-
quedaEn(Destino, Zona),
quedaEn(OtroDestino, Zona).

sonVecinos(UnaPersona, OtraPersona) :-
UnaPersona \= OtraPersona,
viveEn(UnaPersona, Zona),
viveEn(OtraPersona, Zona).

loLleva(UnaPersona, OtraPersona) :-
tieneAuto(UnaPersona),
not(tieneAuto(OtraPersona)),
sonVecinos(UnaPersona, OtraPersona).

quiereIr(fede, racing).
quiereIr(fede, montoto).
quiereIr(victoria, montoto).
quiereIr(tomas, montoto).
quiereIr(tomas, utn).


alguna idea de como hacerlo correctamente?
(Este mensaje fue modificado por última vez en: 09-08-2017 15:43 por z423.)
09-08-2017 15:42
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nicolassierra Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 5
Agradecimientos: 4 en 4 posts
Registro en: Dec 2011
Mensaje: #2
RE: [PDEP]3. Negación y cuantificación 9. Universalidad, parte 1
Se me ocurre de esta manera:
primero queres saber en q zona vive la persona.
segundo todos los lugares q quiera ir
tercero q todos esos lugares queden en la misma zona.



bienUbicado(Persona):- viveEn(Persona, Zona),forall(quiereIr(Persona, Lugar),quedaEn(Lugar, Zona))
(Este mensaje fue modificado por última vez en: 09-08-2017 17:11 por nicolassierra.)
09-08-2017 17:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
z423 Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 140
Agradecimientos dados: 66
Agradecimientos: 0 en 0 posts
Registro en: Mar 2015
Mensaje: #3
RE: [PDEP]3. Negación y cuantificación 9. Universalidad, parte 1
Lo que decis funciona, pero el ejercicio pide usar el not.
10-08-2017 00:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nicolassierra Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 5
Agradecimientos: 4 en 4 posts
Registro en: Dec 2011
Mensaje: #4
RE: [PDEP]3. Negación y cuantificación 9. Universalidad, parte 1
Se me ocurre usando un predicado auxiliar.

bienUbicado(Persona):- viveEn(Persona, Zona),not(existeOtraZona(Persona,Zona)).

existeOtraZona(Persona,Zona):- quiereIr(Persona, Lugar),quedaEn(Lugar, Zona2),Zona2 \= Zona.

Si no existe otra zona , entonces va a devolver falso y con el not va a ser verdadero.
Con q existe otra zona , va a devolver verdadero y con el not va a ser falso.
10-08-2017 18:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.