Cursosā€Ž > ā€ŽSĆ”bados MaƱana - Anualā€Ž > ā€Ž

Tp2 Funcional

La idea de este tp es practicar Orden superior, composición, aplicación parcial, listas, tuplas, pattern matching y recursividad

Nota previa:
En algunos ejercicios se van a utilizar algunas de las funciones que estƔn en el Prelude por ej:
mod: el resto de la división entre 20 y 3 es 2. Ejemplo: mod 20 3 = 2
div: parte entera de la división entre 14 y 3 es 4. Ejemplo: div 14 3 = 4
max: devuelve el max entre 2 nĆŗmeros. Ejemplo max 8 10 = 10
min: devuelve el min entre 2 nĆŗmeros. min 9 15 = 9 --


Para esto se pide resolver los siguientes puntos:

  1. (Ejercicio 3.2 - Guía 1) Codificar una función del denominada esBisiesto que recibe un año y devuelve True si ese año es bisiesto. Recordar que un año es bisiesto si es divisible por 400 o es divisible por 4 pero no es divisible por 100. Resolver utilizando aplicación parcial y composición.
  2. (Ejercicio 3.5 - Guía 1) Definir una función esResultadoPar/2, que invocÔndola con número n y otro m, devuelve True si el resultado de elevar n a m es par. Por ejemploMain> esResultadoPar 2 5
    True
    Main> esResultadoPar 3 2
    False
    Nota: Resolverlo utilizando aplicación parcial y composición.
  3. (Ejercicio 4.2 - Guía 1) Definir la función aplicar, que recibe como argumento una tupla de 2 elementos con funciones y un entero, me devuelve como resultado una tupla con el resultado de aplicar el elemento a cada una de la funciones, ej:Main> aplicar ((3+),(2*)) 8(11,16)
  4. (Ejercicios 2.2.2 y 2.2.3) Durante un entrenamiento fĆ­sico de una hora, cada 10 minutos de entrenamiento se tomo la frecuencia cardĆ­aca de uno de los participantes obteniĆ©ndose un total de 7 muestras que son las siguientesfrecuenciaCardiaca = [80, 100, 120, 128, 130, 123, 125]Comienza con un frecuencia de 80 min 0.A los 10 min la frecuencia alcanza los 100A los 20 min la frecuencia es de 120,A los 30 min la frecuencia es de 128A los 40 min la frecuencia es de 130,…etc..A los 60 min la frecuenca es de 125
    1.  Definir la función frecuenciaCardiacaMinuto/1, que recibe m que es el minuto en el cual quiero conocer la frecuencia cardíaca, m puede ser a los 10, 20, 30 ,40,..hasta 60. Por Ejemplo: Main> frecuenciaCardiacaMomento 30 128 Ayuda: Vale definir una función auxiliar para conocer el número de muestra.2.  Definir la función frecuenciasHastaMomento/1, devuelve el total de frecuencias que se obtuvieron hasta el minuto m. Por ejemplo Main> frecuenciasHastaMomento 30 [80, 100, 120, 128] Ayuda: Utilizar la función take y la función auxiliar definida en el punto anterior.
  5. (Ejercicio 1.4 - Guía 3) Armar una función transformadaLoca que dada una lista de números, devuelva otra a partir de la original tal que:
  • a los elementos mayores a 19 los elimina
  • a los menores a 19 pares les suma 2
  • a los menores a 19 impares les suma 1

Ā Ā  Ā Ā Ā  Ā  Por Ejemplo
Ā Ā  Ā Ā Ā  Ā Ā Ā  Ā Main> transformadaLoca [8,15,22,9,101,13]
Ā Ā  Ā Ā Ā  Ā Ā Ā  Ā [10,16,10,14]
        Ayuda: Vale armar una función auxiliar, se la puede llamar p.ej. sumaLoca.