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
[Aporte] Final Paradigmas de Programacion 13/02/2016
Autor Mensaje
LSolorzano Sin conexión
Empleado del buffet

*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 24
Agradecimientos dados: 13
Agradecimientos: 24 en 5 posts
Registro en: Aug 2012
Facebook
Mensaje: #1
[Aporte] Final Paradigmas de Programacion 13/02/2016 Finales Paradigmas de Programación
Buenos días,

Subo el final de PDP del 13/02/2016.
Si alguno quiero resolverlo, bienvenido sea!

Saludos


Archivo(s) adjuntos Imagen(es)
       
14-02-2016 11:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] LSolorzano recibio 5 Gracias por este post
BananaPancakes (14-02-2016), gabrielarce (15-02-2016), OnlyAmazing (16-02-2016), takuma1985 (19-02-2016), Lujian (23-02-2016)
Winex27 Sin conexión
Empleado del buffet
Aprendiendo Java EEh
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 19
Agradecimientos dados: 6
Agradecimientos: 1 en 1 posts
Registro en: Sep 2010
Mensaje: #2
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
Comparto las respuestas de la parte C.

1. ?- cuantos(Persona, Cant).

a) cuantos(Persona, C):- findall( A, hace(Persona, A), Lista), Length(Lista, C).
Cant=5.
Porque la variable Persona entra al findall sin ligar. Es parcialmente Inversible ya que me deja consultar la Cantidad como incognita.

b) cuantos(Persona, C):- artesano(Persona,_,_), findall( A, hace(Persona, A), Lista), Length(Lista, C).
Persona = carlos, Cant = 2 ;
Persona = maria, Cant = 1 ;
Persona = elsa, Cant = 2.
Porque Persona entra al findall ligada por la regla artesano, el predicado es totalmente inversible, me deja consultar ambas variables.

c) cuantos(Persona,C):- artesano(Persona,_,_), artesania(A,_), findall( A, hace(Persona, A), Lista), Length(Lista, C).
Persona = carlos, Cant = 1 ;
Persona = carlos, Cant = 1 ;
Persona = carlos, Cant = 0 ;
Persona = carlos, Cant = 0 ;
Persona = maria, Cant = 1 ;
Persona = maria, Cant = 0 ;
Persona = maria, Cant = 0 ;
Persona = maria, Cant = 0 ;
Persona = elsa, Cant = 0 ;
Persona = elsa, Cant = 0 ;
Persona = elsa, Cant = 1 ;
Persona = elsa, Cant = 1.
(... en este necesite ayuda del swi-prolog, pero puedo explicar su comportamiento)
Al entrar Persona y A ligadas en el findall, solo se comprueba si existe tal relacion. Osea en el findall entran las combinaciones entre los artesanos(carlos,maria y elsa) con las artesanias(ceramicas,plateria,tejido y estampado). Siempre la cantidad sera entre 0 o 1.
El predicado es totalmente inversible.

2.
malUbicado(Persona):- artesano(Persona, Lugar, _),
forall( (hace(Persona,Producto), artesania(Producto,Material)), not(hayMaterial(Lugar, Material))).


La mayoria lo comprobe con el software de prolog.
Si le pifie avisen pls.
(Este mensaje fue modificado por última vez en: 18-02-2016 23:35 por Winex27.)
18-02-2016 22:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Winex27 recibio 1 Gracias por este post
takuma1985 (19-02-2016)
gabrielarce En línea
Empleado de Fotocopiadora
Benditos finales..
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 14
Agradecimientos: 4 en 3 posts
Registro en: Jan 2010
Mensaje: #3
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
Buenas! como va?

Tengo mis dudas para la justificación, pero les paso lo que hice para el primer punto..

Parte A
-----------
1) Todas funcionan correctamente. El tema de cual es mejor o peor creo que va por como lo ve cada uno.. por ejemplo, para mi cantidadTotal5 es mejor que el resto por ser mas expresiva (porque veo que tiene nombres claros, que me dicen que hace cada cosa..) pero a la vez es menos declarativa, ya que veo los pasos para resolver el total. Por otro lado, cantidadTotal4 es la peor con respecto a los demás por el hecho que es menos expresivo (uno tiene que saber que es foldl, por ejemplo) y menos declarativo.. pero creo que va en uno. No se muy bien como justificarlo..

2) No termina nunca. Hay que darse cuenta que lo que se está proponiendo es una lista infinita. Haskell intenta resolver la funcion por medio del concepto de lazy evaluation, pero no puede terminar de concluir cuando quiere sumar todos los valores de una lista infinita.

3) funcionMagica peso = filter ((<peso).snd)


Alguien hizo la parte B?? (creo que fue bastante jodido este final.. muy conceptual..)

Saludos!
23-02-2016 09:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
15406644 Sin conexión
Campeon del cubo Rubik
nil
****

Ing. Naval
Centro de Estudios Mar del Plata

Mensajes: 143
Agradecimientos dados: 42
Agradecimientos: 51 en 24 posts
Registro en: Jun 2012
Mensaje: #4
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
en el 1 de la parte A, la segunda funcion no anda, le falta el '/' delante de la funcion lambda
23-02-2016 19:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gabrielarce En línea
Empleado de Fotocopiadora
Benditos finales..
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 14
Agradecimientos: 4 en 3 posts
Registro en: Jan 2010
Mensaje: #5
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
Bueno, debe ser un error de impresion.. porque no creo que eso te lo tomen como que no funciona..
Alguien rindio este final y pudo aclarar lo del '/' ??
23-02-2016 21:46
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gabrielarce En línea
Empleado de Fotocopiadora
Benditos finales..
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 14
Agradecimientos: 4 en 3 posts
Registro en: Jan 2010
Mensaje: #6
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
Perdón por la insistencia pero.. alguien hizo la parte de objetos de este final??
25-02-2016 10:39
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Milu Sin conexión
Empleado del buffet
(^.^)
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 3
Agradecimientos dados: 50
Agradecimientos: 0 en 0 posts
Registro en: May 2012
Mensaje: #7
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
Dejo un link del grupo de yahoo de pdep donde aparece parte de la corrección.

https://groups.yahoo.com/neo/groups/pdep...?reverse=1

Saludos!
25-02-2016 19:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
15406644 Sin conexión
Campeon del cubo Rubik
nil
****

Ing. Naval
Centro de Estudios Mar del Plata

Mensajes: 143
Agradecimientos dados: 42
Agradecimientos: 51 en 24 posts
Registro en: Jun 2012
Mensaje: #8
RE: [Aporte] Final Paradigmas de Programacion 13/02/2016
(23-02-2016 21:46)gabrielarce escribió:  Bueno, debe ser un error de impresion.. porque no creo que eso te lo tomen como que no funciona..
Alguien rindio este final y pudo aclarar lo del '/' ??
a ese lo tenia bien, aunque creo igual q vos q era un error de imprecion.

respecto a la parte C el 1c, el predicado no es totamente inversible, segun la wiki.
"La inversibilidad no tiene que ver solamente con que "dé error", muchas veces lo que pasa es -que sin dar error- se comporta incorrectamente o de forma distinta a la que uno espera, en ese caso también decimos que no es inversible."
les dejo el link por si acaso
26-02-2016 20:26
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.