Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Ayuda] Ejercicio Prolog Final
Autor Mensaje
c'thun Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 105
Agradecimientos dados: 97
Agradecimientos: 5 en 4 posts
Registro en: Mar 2013
Mensaje: #1
[Ayuda] Ejercicio Prolog Final Ejercicios Paradigmas de Programación
Hola estaba resolviendo un final y tengo el siguiente ejercicio, me surgieron varias dudas
[Imagen: prolog-1649208.png]
Esto es lo que yo pude responder
1a) No es polimorfica ya que repite código y lógica en los predicados: todosLosMetrosDeCasas y todosLosMetrosDeDepartamentos
1b) No hace falta ligar con la variable metros, ya es inversible por si sólo.
1c) y 2.
No tengo ni idea, no se me ocurre otra manera de hacer el predicado propiedadMasGrande, aclaro que tampoco se puede alterar la base. =/

Muchas gracias.
25-02-2016 07:02
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
dezine18 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 52
Agradecimientos dados: 1
Agradecimientos: 44 en 21 posts
Registro en: Oct 2008
Mensaje: #2
RE: [Ayuda] Ejercicio Prolog Final
Aloha

Sobre tus dudas

1c) pensa que existe otra forma de obtener un máximo, acá tiene un par de pasos, juntar todos los elementos + concatenarlos + obtener un máximo. Es bastante imperativa la solución, existe otra basada en el paradigma lógico, que podes decir Tal es mayor que todos.

2) La idea es arreglar todo lo otro que dijiste que estaba mal antes (solo que no te olvides de que sea inversible)

Y sobre las respuestas

1a) mmm, para mi la repetición de código es una consecuencia, pensa que es lo que te soluciona el polimorfismo y ahi no esta presente. Porque así la respuesta es como que queda a medias.

1b) yo pondría que es inversible (porque lo que me interesa generar es la lista), que no necesito generar Metros antes porque si ligo la variable antes el findall solo va a hacer que vaya un único Metros que es el que genero primero y no es lo que quiero.
25-02-2016 09:46
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] dezine18 recibio 1 Gracias por este post
c'thun (25-02-2016)
gabrielarce Sin conexión
Militante
Benditos finales..
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 99
Agradecimientos dados: 62
Agradecimientos: 19 en 11 posts
Registro en: Jan 2010
Mensaje: #3
RE: [Ayuda] Ejercicio Prolog Final
Para el punto C, tenes que ver que otra forma pueda existir para que se entienda mejor. Recordá la definición de declaratividad y después compará con la solución..

Después, para el resto estoy de acuerdo con dezine18

Saludos!
25-02-2016 10:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] gabrielarce recibio 1 Gracias por este post
c'thun (25-02-2016)
pcajedrez Sin conexión
Militante
...Ad Astra Per Aspera...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 88
Agradecimientos dados: 5
Agradecimientos: 120 en 33 posts
Registro en: Jul 2013
Mensaje: #4
RE: [Ayuda] Ejercicio Prolog Final
A mi se me ocurre en el punto 2 usar polimorfismo, orden superior y declaratividad.


obtenerMetros(Metros) :- propiedad(_, _,casa(Metros)).
obtenerMetros(Metros) :- propiedad(_, _,departamento(_, Metros)).

propiedadMasGrande(MetrosFinal) :- obtenerPropiedadMasGrande(MetrosFinal).

obtenerPropiedadMasGrande(MetrosFinal) :- findall(Metros,obtenerMetros(Metros),ListaMetros),
max_member(MetrosFinal,ListaMetros).

(Este mensaje fue modificado por última vez en: 25-02-2016 16:33 por pcajedrez.)
25-02-2016 16:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] pcajedrez recibio 1 Gracias por este post
c'thun (25-02-2016)
dezine18 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 52
Agradecimientos dados: 1
Agradecimientos: 44 en 21 posts
Registro en: Oct 2008
Mensaje: #5
RE: [Ayuda] Ejercicio Prolog Final
Además de usar polimorfismo para arreglarlo, usaría un forall/2 para aumentar la declaratividad, dado que no necesito decirle explicitamente arma una lista y saca el mayor, ya que no me importa como hace el motor el forall/2
(Este mensaje fue modificado por última vez en: 26-02-2016 09:25 por dezine18.)
26-02-2016 09:23
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)