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
[Paradigmas] Final 17/12/2011
Autor Mensaje
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 454
Agradecimientos dados: 108
Agradecimientos: 186 en 28 posts
Registro en: Sep 2008
Mensaje: #1
[Paradigmas] Final 17/12/2011 Finales Paradigmas de Programación
Chicos:

https://docs.google.com/document/d/1k2KX...edit?pli=1

Acá está el final de Paradigmas del 17/12/2011. Lo resolví pero no sé si está del todo bien. Si me pueden dar una mano se los agradecería.

Resolución

1.-
A) Se puede afirmar que:
2.- Al querer cargar las definiciones en Haskell nos da error.
Al cargarlo en Haskell la definición de la función “quienPelea” devuelve un error de tipo, ya que en un caso devuelve a una persona ([char]) y en otra una lista de personas ([[char]]).

B) Se puede afirmar que:
3.- Los métodos se guardan sin errores y todo el workspace se ejecuta sin generar ningún error.
No genera ningún error porque Ash es más fuerte que Gary, de lo contrario, habría un error ya que al realizar
ash amigos: 9000.
Se pierde la colección creada en el método initialize y cuando se ejecute quienPeleaCon: tiene ejecutar misPrimerosCincoAmigosMasFuertesQue
misPrimerosCincoAmigosMasFuertesQue: agresor
| primerosAmigos |
primerosAmigos := Bag new.
self amigos do: [ :unAmigo |
(unAmigo esMasFuerteQue: agresor)
ifTrue: [ primerosAmigos add: unAmigo.
primerosAmigos size >= 5 ifTrue: [ ^primerosAmigos ]]
].
^primerosAmigos
Como la variable amigos quedó como 9000 y no como una colección devolvería un error al ejecutar amigos do: ya que 9000 no lo entiende.

C) Se puede afirmar que:
3.- Ninguna de las anteriores.
No hay ningún error, sólo que devuelve a X = ash, por como está definida la función
quienPelea/3 al ser Ash más fuerte que Gary (100 vs 99), se cumple la primer cláusula de la función, quienPelea(Atacado,Agresor,Atacado), por lo que X matchea con Ash.

2.-
a) Dadas dos personas, un atacado y un agresor, si el atacado tiene mayor fuerza que el agresor, devolverá al atacado, en caso contrario, devolverá a los 5 amigos (del atacado) que tenga mayor fuerza que el agresor.

b) Sólo se puede incorporar en el paradigma de Objetos, ya que es el único de los tres que tiene Asignación Destructiva.

3-
a) Tendría que entrar en un loop infinito pero debido a la evaluación diferida sólo va a tomar los 5 elementos que necesita la función primerosCincoAmigosMasFuertesDe, por lo que devolverá la siguiente lista: [“misty”,”misty”,”misty”,”misty”,”misty”]

b) Entraría en un loop infinito, al llamarse recursivamente al getter “amigos” en:
misAmigos addAll: self amigos.

c) Al tratarse de un predicado recursivo en el cuál no hay caso base, el mismo entraría en un loop infinito.

4.-
a) El método “misPrimerosCincoAmigosMasGrososQue” tardaría más que “misPrimerosCincoAmigosMasFuertesQue” y esto está relacionado en la declaratividad de cada método. En el primero se evalúan todos los amigos y del total se toman 5, mientras que en el segundo se evalúa al agregar un amigo a la colección si la misma ya tiene 5 amigos. En caso de ser afirmativo se devuelve la colección de amigos.

b) En el método misPrimerosCincoAmigosMasGrososQue no se sabe qué devuelve porque no se conoce la implementación del método first.
En el segundo si tiene menos de 5 elementos, devuelve el mensaje de error.
Ees preferible el método misPrimerosCincoAmigosMasFuertesQue porque asegura que ante la falta de los 5 elementos devuelva un mensaje de error.


Muchas gracias.
Leandro.
(Este mensaje fue modificado por última vez en: 27-02-2012 17:59 por leandrong.)
27-02-2012 17:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] leandrong recibio 1 Gracias por este post
Ani_Z (25-09-2013)
paulita Sin conexión
Empleado del buffet
:)
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 22
Agradecimientos dados: 14
Agradecimientos: 1 en 1 posts
Registro en: Mar 2010
Mensaje: #2
RE: [Paradigmas] Final 17/12/2011
Esta todo bien...
yo agregaria en el punto 2)b) el concepto de efecto de lado.
y en el punto 3)a) tengo mis dudas, yo resolvi este final y se lo mostre a un ayudante yo habia contestado "Devuelve una lista con un solo amigo" y me puso "falta justificacion". eso significa que esta bien? jaja deberia volver a preguntarle.
take 5 ["misty"] = ["misty"] seria mi justificacion
con tu resolución me haces dudar,
Igual el resto esta perfecto! aprobado! (Y)
27-02-2012 22:58
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 454
Agradecimientos dados: 108
Agradecimientos: 186 en 28 posts
Registro en: Sep 2008
Mensaje: #3
RE: [Paradigmas] Final 17/12/2011
(27-02-2012 22:58)paulita escribió:  Esta todo bien...
yo agregaria en el punto 2)b) el concepto de efecto de lado.
y en el punto 3)a) tengo mis dudas, yo resolvi este final y se lo mostre a un ayudante yo habia contestado "Devuelve una lista con un solo amigo" y me puso "falta justificacion". eso significa que esta bien? jaja deberia volver a preguntarle.
take 5 ["misty"] = ["misty"] seria mi justificacion
con tu resolución me haces dudar,
Igual el resto esta perfecto! aprobado! (Y)

El 3)a) devuelve 5 elementos. Lo ejecuté y lo probé. En eso estoy seguro. Gracias por contestar =)
27-02-2012 23:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Mauro_bilo Sin conexión
Empleado de Fotocopiadora
Tool
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 42
Agradecimientos dados: 29
Agradecimientos: 11 en 6 posts
Registro en: Sep 2010
Facebook
Mensaje: #4
RE: [Paradigmas] Final 17/12/2011
Gracias Lean... me re sirvio tu resolucion... es jodido encontrar ejercicios resueltos de paradigmas de finales.
01-10-2012 17:32
Envíale un email 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.