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
Final Paradigmas de Programación 13/12/14
Autor Mensaje
Focus Sin conexión
Empleado de Fotocopiadora
run neon tiger
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 48
Agradecimientos dados: 19
Agradecimientos: 26 en 10 posts
Registro en: Sep 2013
Mensaje: #1
Final Paradigmas de Programación 13/12/14 Finales Paradigmas de Programación
Oooo, trece del doce del catorce.


Archivo(s) adjuntos Imagen(es)
       
13-12-2014 15:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Focus recibio 1 Gracias por este post
lemenz (17-12-2014)
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 98
Agradecimientos dados: 24
Agradecimientos: 114 en 17 posts
Registro en: Dec 2014
Mensaje: #2
RE: Final Paradigmas de Programación 13/12/14
comparado con los anteriores me parecio bastante mas facil. Clave un 5 porque bardie con haskell (sobretodo eso de las consultas).
13-12-2014 16:00
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #3
RE: Final Paradigmas de Programación 13/12/14
A mi me rompió todo en el de los tipos de la función. Frutie como el mejor.

[Imagen: jQJfyBGh9SOmZ.png]
13-12-2014 18:28
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
verne Sin conexión
Militante
Así soy yo
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 76
Agradecimientos dados: 8
Agradecimientos: 14 en 8 posts
Registro en: Oct 2013
Mensaje: #4
RE: Final Paradigmas de Programación 13/12/14
Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Volverte loco es síntoma de la enfermedad del progreso.
13-12-2014 19:09
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #5
RE: Final Paradigmas de Programación 13/12/14
Yo en las consultas, aplique todo orden superior.

Para el primer caso hice:

mujeresPeloCastaño = (map nombre . filter peloCastaño . filter esMujer) personajes

Basicamente aplicas filtros a la lista hasta obtener las minas.
De todas formas no es muy confiable porque saqué 5 =P.

[Imagen: jQJfyBGh9SOmZ.png]
13-12-2014 19:31
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Focus Sin conexión
Empleado de Fotocopiadora
run neon tiger
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 48
Agradecimientos dados: 19
Agradecimientos: 26 en 10 posts
Registro en: Sep 2013
Mensaje: #6
RE: Final Paradigmas de Programación 13/12/14
(13-12-2014 19:31)Martin. escribió:  Yo en las consultas, aplique todo orden superior.

Para el primer caso hice:

mujeresPeloCastaño = (map nombre . filter peloCastaño . filter esMujer) personajes

Basicamente aplicas filtros a la lista hasta obtener las minas.
De todas formas no es muy confiable porque saqué 5 =P.

eso está bien, pero fijate que te preguntan sólo si alguna mujer tiene pelo castaño. no los nombres. o sea, a todo eso le falta un gran any. parece una boludez pero le deben dar importancia.

con los hombres de boca grande sí, únicamente los nombres.
13-12-2014 23:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
facundoaita Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 71
Agradecimientos dados: 73
Agradecimientos: 63 en 20 posts
Registro en: Sep 2011
Facebook Google+ LinkedIn Twitter YouTube
Mensaje: #7
RE: Final Paradigmas de Programación 13/12/14
B-3.
Aclaraciones:
VC: Variables de Clase
WS: Workspace
variables con mayuscula => variables de clase
[Imagen: 868ca9a2]



#Wiki
>>subirContenido: unContenido
(unContenido tardaEnSubir > TamanioAceptado)
ifTrue: [ unContenido achicar ]
contenidos add: unContenido

#Texto
>>tardaEnSubir
^descripcion size * FactorDesc

>>achicar
self indexar

#Imagen
>>tardaEnSubir
^cantidadPixeles

>>achicar
self comprimir


Puede haber varias soluciones posibles.
Yo la plantearía así. Justificando que:

· achicar es polimorfico porque lo entienden varias clases, y devuelven lo mismo.

· tardaEnSubir tambien es polimórfico.

· Originalmente "* 10" estaba en el método de Texto, con lo que va a ser un factor (o el nombre que quieran ponerle) igual para todas las instancias.
Me gusta pensar que si hay un valor igual para todas las instancias, lo puedo abstraer en una VC la cual es modificable mediante WS.

· Similar al anterior con TamanioAceptado

· Porque tardaEnSubir no devuelve un booleano?
Para mi, saber cuanto tarda en subirse es responsabilidad del contenido, pero saber si es demasiado pesado es responsabilidad de la wiki.
De hecho la comparación que se hace con 10000, yo supongo (no lo dice el texto) que es "decisión" de la wiki determinar ese valor.

· Porque mantengo la clase Contenido?
Porque en otros lenguajes (como java), yo puedo tener listas de instancias de una sola clase. Si yo defino List<Contenido> voy a poder guardar texto, imagenes y cualquier otra instancia de clases que hereden de Contenido.
14-12-2014 15:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] facundoaita recibio 1 Gracias por este post
lemenz (17-12-2014)
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 98
Agradecimientos dados: 24
Agradecimientos: 114 en 17 posts
Registro en: Dec 2014
Mensaje: #8
RE: Final Paradigmas de Programación 13/12/14
(13-12-2014 19:31)Martin. escribió:  Yo en las consultas, aplique todo orden superior.

Para el primer caso hice:

mujeresPeloCastaño = (map nombre . filter peloCastaño . filter esMujer) personajes

Basicamente aplicas filtros a la lista hasta obtener las minas.
De todas formas no es muy confiable porque saqué 5 =P.

yo tambien las hice asi, aunque sin composicion (con composicion queda mejor).
14-12-2014 18:27
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Adolfito Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 114
Agradecimientos dados: 17
Agradecimientos: 13 en 7 posts
Registro en: Nov 2012
Mensaje: #9
RE: Final Paradigmas de Programación 13/12/14
(13-12-2014 19:09)verne escribió:  Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Podrias explicarme por favor como llegas a esa conclusión con respecto al tipo de dato?

Con respecto a lo de haskell yo lo haria asi:
a) pelo (_,_,color,_)=color
genero(_,g,_,_)=g
esMujer persona = genero persona == "mujer"
esCastaño persona = pelo persona == "castaño"
mujerCastaña persona = (esMujer persona) && (esCastaño persona)

existeMujerCastaña listaPersonajes = any mujerCastaña listaPersonajes

b)boca (_,_,_,b) = b
nombre (n,_,_,_) = n
esHombre persona = genero persona == "hombre"
tieneBocaGrande persona = boca persona == "grande"

hombresDeBocaGrande listaPersonajes = (map nombre. filter tieneBocaGrande. filter esHombre) listaPersonajes
15-12-2014 11:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DobleR Sin conexión
Militante
Fracasa el que no lo intenta
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 98
Agradecimientos dados: 24
Agradecimientos: 114 en 17 posts
Registro en: Dec 2014
Mensaje: #10
RE: Final Paradigmas de Programación 13/12/14
(15-12-2014 11:35)Adolfito escribió:  
(13-12-2014 19:09)verne escribió:  Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Podrias explicarme por favor como llegas a esa conclusión con respecto al tipo de dato?

Con respecto a lo de haskell yo lo haria asi:
a) pelo (_,_,color,_)=color
genero(_,g,_,_)=g
esMujer persona = genero persona == "mujer"
esCastaño persona = pelo persona == "castaño"
mujerCastaña persona = (esMujer persona) && (esCastaño persona)

existeMujerCastaña listaPersonajes = any mujerCastaña listaPersonajes

b)boca (_,_,_,b) = b
nombre (n,_,_,_) = n
esHombre persona = genero persona == "hombre"
tieneBocaGrande persona = boca persona == "grande"

hombresDeBocaGrande listaPersonajes = (map nombre. filter tieneBocaGrande. filter esHombre) listaPersonajes

no podias implementar nada, solo consultar (es decir que no podias desarrollar las funciones que desarrollaste).
15-12-2014 20:54
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
verne Sin conexión
Militante
Así soy yo
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 76
Agradecimientos dados: 8
Agradecimientos: 14 en 8 posts
Registro en: Oct 2013
Mensaje: #11
RE: Final Paradigmas de Programación 13/12/14
(15-12-2014 11:35)Adolfito escribió:  
(13-12-2014 19:09)verne escribió:  Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Podrias explicarme por favor como llegas a esa conclusión con respecto al tipo de dato?

Yo lo razoné así:

fmagia tiene 3 parámetros y uno que pasa por aplicación parcial, o sea 4.

fmagia :: (precondición a completar) => W -> X -> Y -> Z -> Bool (devuelve Bool ya que el all que es lo último que se hace devuelve True o False)

Ahora bien, empezamos a buscar W, X, Y y Z.
Z, vendría a ser un lista ya que lo primero que se hace es aplicar map, map recibe una función que devuelve bool y una lista, y devuelve una lista (ver :t map).
Por lo tanto Z será una lista de algún tipo que llamaremos Z.

fmagia :: (precondición a completar) => W -> X -> Y -> [Z] -> Bool

Como el map (*a) va a multiplicar por "a" todos los valores de la lista, a y Z son numéricos. Y además deben ser del mismo tipo ya que el * multiplica mismos tipos (ver :t (*)). Ahí tenemos una precondición NUM y W que era el parámetro "a" es del mismo tipo que Z.

fmagia :: Num Z => Z -> X -> Y -> [Z] -> Bool

Miremos un poco la función, el resultado del map (que es una lista [Z]) va a entrar como parámetro del all. El all recibe una función que devuelve un bool y una lista que será la que se itera con la función anterior (ver :t all). Entonces "b a" va a recibir el "a" (ya definido) y cada elemento de la lista que se envió al all, entones podemos definir "b" que es mi X en mi planteo. X :: (Z -> Z -> M)
Va a devolver un valor que el tipo dependerá de lo que haga la función "b", entonces lo ponemos con otra letra "M". (esta parte la había hecho mal, deduje que "b" iba a devolver el mismo tipo de lo que recibía, pero eso no lo podés saber porque no sabés qué hace específicamente "b", entonces ponés un tipo diferente, como bien hice ahora).

fmagia :: Num Z => Z -> (Z -> Z -> M) -> Y -> [Z] -> Bool

Miremos el parámetro "c", podemos ver que es acompañado por un ">" por lo que ya sabemos que tendrá una precondición Ord.
Nos queda "Y" que vendría a representar al parámetro "c". Como vemos en la función, el ">" va a operar con "c" y lo que devuelve la función "b" (era una M). Entonces podemos decir que "c" será del tipo "M". Por lo tanto:

fmagia :: Num Z, Ord M => Z -> (Z -> Z -> M) -> M -> [Z] -> Bool

Ponemos letras más lindas...

fmagia :: Num a, Ord b => a -> (a -> a -> b) -> b -> [a] -> Bool

Esta es mi forma de hacerlo, complicado explicarla por texto. Seguro hay métodos mejores como utilizar algoritmos de inferencia de tipos, lo mío es más deductivo.

Espero que sirva, abrazo!

Volverte loco es síntoma de la enfermedad del progreso.
(Este mensaje fue modificado por última vez en: 17-12-2014 10:40 por verne.)
17-12-2014 10:38
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] verne recibio 4 Gracias por este post
Camper (08-12-2015), maty711 (09-02-2016), 15406644 (11-02-2016), Smitten1994 (08-01-2018)
Adolfito Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 114
Agradecimientos dados: 17
Agradecimientos: 13 en 7 posts
Registro en: Nov 2012
Mensaje: #12
RE: Final Paradigmas de Programación 13/12/14
(15-12-2014 20:54)DobleR escribió:  
(15-12-2014 11:35)Adolfito escribió:  
(13-12-2014 19:09)verne escribió:  Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Podrias explicarme por favor como llegas a esa conclusión con respecto al tipo de dato?

Con respecto a lo de haskell yo lo haria asi:
a) pelo (_,_,color,_)=color
genero(_,g,_,_)=g
esMujer persona = genero persona == "mujer"
esCastaño persona = pelo persona == "castaño"
mujerCastaña persona = (esMujer persona) && (esCastaño persona)

existeMujerCastaña listaPersonajes = any mujerCastaña listaPersonajes

b)boca (_,_,_,b) = b
nombre (n,_,_,_) = n
esHombre persona = genero persona == "hombre"
tieneBocaGrande persona = boca persona == "grande"

hombresDeBocaGrande listaPersonajes = (map nombre. filter tieneBocaGrande. filter esHombre) listaPersonajes

no podias implementar nada, solo consultar (es decir que no podias desarrollar las funciones que desarrollaste).

y como haces sin funciones? Si haces una que use map y filter estas creando una funcion tambien...
aparte el enunciado te dice que el juego consiste en hacer preguntas que se respondan con si o con no a mi me da a entender que podes usar funciones que devuelvan true o false, pero bueno si no es asi explicame por favor a que se refiere asi no la cago cuando lo de =P
(Este mensaje fue modificado por última vez en: 17-12-2014 10:47 por Adolfito.)
17-12-2014 10:44
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #13
RE: Final Paradigmas de Programación 13/12/14
Tenes que usar las funciones, pero no tenes que desarrollarlas.
Como lo hiciste vos está bien, pero no tenes que hacerlas, solo nombrarlas.

[Imagen: jQJfyBGh9SOmZ.png]
17-12-2014 10:54
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Adolfito Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 114
Agradecimientos dados: 17
Agradecimientos: 13 en 7 posts
Registro en: Nov 2012
Mensaje: #14
RE: Final Paradigmas de Programación 13/12/14
(17-12-2014 10:38)verne escribió:  
(15-12-2014 11:35)Adolfito escribió:  
(13-12-2014 19:09)verne escribió:  Yo clavé un 6. Me parece que frutié con lo de las consultas de haskell y el A-3 no lo hice.
La parte de objetos era fácil.
Lo del tipo de fmagia recién lo chequié y lo hice casi perfecto.

Yo hice:
fmagia :: (Num a, Ord a) => a -> (a -> a -> a) -> a -> [a] -> Bool

Y era:
fmagia :: (Num a, Ord b) => a -> (a -> a -> b) -> b -> [a] -> Bool (Eso dice el WinGHCi)

Si alguien me tira un centro con el de las consultas del punto 1 de Haskell se lo agradecería.

Podrias explicarme por favor como llegas a esa conclusión con respecto al tipo de dato?

Yo lo razoné así:

fmagia tiene 3 parámetros y uno que pasa por aplicación parcial, o sea 4.

fmagia :: (precondición a completar) => W -> X -> Y -> Z -> Bool (devuelve Bool ya que el all que es lo último que se hace devuelve True o False)

Ahora bien, empezamos a buscar W, X, Y y Z.
Z, vendría a ser un lista ya que lo primero que se hace es aplicar map, map recibe una función que devuelve bool y una lista, y devuelve una lista (ver :t map).
Por lo tanto Z será una lista de algún tipo que llamaremos Z.

fmagia :: (precondición a completar) => W -> X -> Y -> [Z] -> Bool

Como el map (*a) va a multiplicar por "a" todos los valores de la lista, a y Z son numéricos. Y además deben ser del mismo tipo ya que el * multiplica mismos tipos (ver :t (*)). Ahí tenemos una precondición NUM y W que era el parámetro "a" es del mismo tipo que Z.

fmagia :: Num Z => Z -> X -> Y -> [Z] -> Bool

Miremos un poco la función, el resultado del map (que es una lista [Z]) va a entrar como parámetro del all. El all recibe una función que devuelve un bool y una lista que será la que se itera con la función anterior (ver :t all). Entonces "b a" va a recibir el "a" (ya definido) y cada elemento de la lista que se envió al all, entones podemos definir "b" que es mi X en mi planteo. X :: (Z -> Z -> M)
Va a devolver un valor que el tipo dependerá de lo que haga la función "b", entonces lo ponemos con otra letra "M". (esta parte la había hecho mal, deduje que "b" iba a devolver el mismo tipo de lo que recibía, pero eso no lo podés saber porque no sabés qué hace específicamente "b", entonces ponés un tipo diferente, como bien hice ahora).

fmagia :: Num Z => Z -> (Z -> Z -> M) -> Y -> [Z] -> Bool

Miremos el parámetro "c", podemos ver que es acompañado por un ">" por lo que ya sabemos que tendrá una precondición Ord.
Nos queda "Y" que vendría a representar al parámetro "c". Como vemos en la función, el ">" va a operar con "c" y lo que devuelve la función "b" (era una M). Entonces podemos decir que "c" será del tipo "M". Por lo tanto:

fmagia :: Num Z, Ord M => Z -> (Z -> Z -> M) -> M -> [Z] -> Bool

Ponemos letras más lindas...

fmagia :: Num a, Ord b => a -> (a -> a -> b) -> b -> [a] -> Bool

Esta es mi forma de hacerlo, complicado explicarla por texto. Seguro hay métodos mejores como utilizar algoritmos de inferencia de tipos, lo mío es más deductivo.

Espero que sirva, abrazo!

Muy buena explicación, muchas gracias

(17-12-2014 10:54)Martin. escribió:  Tenes que usar las funciones, pero no tenes que desarrollarlas.
Como lo hiciste vos está bien, pero no tenes que hacerlas, solo nombrarlas.

ah joya en mi caso ponele seria esto nomas:

existeMujerCastaña listaPersonajes = any mujerCastaña listaPersonajes

hombresDeBocaGrande listaPersonajes = (map nombre. filter tieneBocaGrande. filter esHombre) listaPersonajes

no?
(Este mensaje fue modificado por última vez en: 17-12-2014 11:05 por Adolfito.)
17-12-2014 11:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.379
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #15
RE: Final Paradigmas de Programación 13/12/14
Correcto!, diría Susana.

[Imagen: jQJfyBGh9SOmZ.png]
17-12-2014 11:10
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)