Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
Funcional, dudas de como resolver un punto
Autor Mensaje
kroo3 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Sep 2012
Mensaje: #1
Funcional, dudas de como resolver un punto Ejercicios Paradigmas de Programación
Bueno, es de un tp de funcional, y tengo que resolver un punto que me esta quemando la cabeza :/


Las carreras de chocobos son un entretenimiento cada día más popular, y por lo tanto ya es hora de armar un programa que nos ayude a analizarlas como es debido. Elegimos hacerlo en haskell, básicamente por inercia (y... ya que lo venimos usando hace 2 meses sigamos con eso).

Las pistas por las que nuestros emplumados amigos deben correr van a estar representadas por listas de tramos, cada tramo a su vez sera representado por una tupla (distancia, correcionDeVelocidad).

bosqueTenebroso = [ (100, f1) , (50, f2) , (120, f2) , (200, f1) , (80, f3) ]
pantanoDelDestino = [ (40, f2) , (90, (\(CChocobo _ (f,p,v))-> f + p + v)) , (120, fuerza) , (20, fuerza) ]

f1 chocobo = velocidad chocobo * 2
f2 chocobo = velocidad chocobo + fuerza chocobo
f3 chocobo = velocidad chocobo `div` peso chocobo

Tenemos los chocobos (esenciales para una carrera de chocobos): el negro, el amarillo, el blanco y el rojo. Cada uno tiene distintas características, modeladas por medio de un data:

data Chocobo = CChocobo String (Integer,Integer,Integer) deriving(Show)

amarillo = CChocobo "amarillo" (5,3,3)
negro = CChocobo "negro" (4,4,4)
blanco = CChocobo "blanco" (2,3,6)
rojo = CChocobo "rojo" (3,3,4)

fuerza (CChocobo _ (f,_,_)) = f
peso (CChocobo _ (_,p,_)) = p
velocidad (CChocobo _ (_,_,v)) = v


2. a. Saber el tiempo que tarda un chocobo en recorrer un tramo. El mismo está dado por la distancia del tramo dividido por la velocidad corregida para el chocobo.

> tiempo amarillo (head bosqueTenebroso)
16

bien, mi problema es a la hora de relacionar lo que serian las funciones f1, f2 y f3 con la correccion de velocidad, se me ocurre algo asi:

distancia ( a, _) = a
correccionDeVelocidad ( _,b) =b

pero aca me quedo, ayuda pliss :/
14-06-2015 02:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
FarSalazar Sin conexión
Militante
"Si el viento cambia... E...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 79
Agradecimientos dados: 0
Agradecimientos: 18 en 15 posts
Registro en: Apr 2014
Mensaje: #2
RE: Funcional, dudas de como resolver un punto
hola , primero que nada lo de data no lo vi en la cursada pero me parece que no cambia en nada el ejercicio.

1)Lo que tenemos que ver primero , pensar que va a recbir esta funcion? , va a recibir un chocobo y un tramo ( que representa una tupla).

Ahora,
tiempo chocobo (distancia,correcionVelocidad ) = distancia `div` (correccionVelocidad chocobo)
correcionVelocidad es una funcion que le aplicas al chocobo para obtener su velocidad
en este caso seria equivalente a f1 chocobo = velocidad chocobo * 2
velocidad (CChocobo _ (_,_,v)) = v ya esta definida asi que te podes abstraer de todo eso y lo mismo es para todas las funciones definidas , espero no a verme equivocado
creo que es solo eso , espero te sirva.

saludos
14-06-2015 12:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
kroo3 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 21
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Sep 2012
Mensaje: #3
RE: Funcional, dudas de como resolver un punto
Uh que genio, mil gracias, yo a la funcion le enviaba un chocobo y un tramo, (no en forma de tupla), no lo iba a resolver nunca jaja
15-06-2015 00:02
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.