I1M2013: Definiciones por composición de funciones aritméticas
En la clase de hoy del curso Informática (de 1º del Grado en Matemáticas) se han resuelto los ejercicios de la 1ª relación. El objetivo de dicha relación es habituar a los alumnos con el entorno de trabajo Haskell/Emacs resolviendo ejercicios con definiciones de funciones por composición de las primitivas de Haskell sobre aritmética.
Los ejercicios y sus soluciones se muestran a continuación
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
-- --------------------------------------------------------------------- -- Ejercicio 1. Definir la función media3 tal que (media3 x y z) es -- la media aritmética de los números x, y y z. Por ejemplo, -- media3 1 3 8 == 4.0 -- media3 (-1) 0 7 == 2.0 -- media3 (-3) 0 3 == 0.0 -- --------------------------------------------------------------------- media3 x y z = (x+y+z)/3 -- --------------------------------------------------------------------- -- Ejercicio 2. Definir la función sumaMonedas tal que -- (sumaMonedas a b c d e) es la suma de los euros correspondientes a -- a monedas de 1 euro, b de 2 euros, c de 5 euros, d 10 euros y -- e de 20 euros. Por ejemplo, -- sumaMonedas 0 0 0 0 1 == 20 -- sumaMonedas 0 0 8 0 3 == 100 -- sumaMonedas 1 1 1 1 1 == 38 -- --------------------------------------------------------------------- sumaMonedas a b c d e = 1*a+2*b+5*c+10*d+20*e -- --------------------------------------------------------------------- -- Ejercicio 3. Definir la función volumenEsfera tal que -- (volumenEsfera r) es el volumen de la esfera de radio r. Por ejemplo, -- volumenEsfera 10 == 4188.790204786391 -- Indicación: Usar la constante pi. -- --------------------------------------------------------------------- volumenEsfera r = (4/3)*pi*r^3 -- --------------------------------------------------------------------- -- Ejercicio 4. Definir la función areaDeCoronaCircular tal que -- (areaDeCoronaCircular r1 r2) es el área de una corona circular de -- radio interior r1 y radio exterior r2. Por ejemplo, -- areaDeCoronaCircular 1 2 == 9.42477796076938 -- areaDeCoronaCircular 2 5 == 65.97344572538566 -- areaDeCoronaCircular 3 5 == 50.26548245743669 -- --------------------------------------------------------------------- areaDeCoronaCircular r1 r2 = pi*(r2^2 -r1^2) -- --------------------------------------------------------------------- -- Ejercicio 5. Definir la función ultimaCifra tal que (ultimaCifra x) -- es la última cifra del nímero x. Por ejemplo, -- ultimaCifra 325 == 5 -- Indicación: Usar la función rem -- --------------------------------------------------------------------- ultimaCifra x = rem x 10 -- --------------------------------------------------------------------- -- Ejercicio 6. Definir la función maxTres tal que (maxTres x y z) es -- el máximo de x, y y z. Por ejemplo, -- maxTres 6 2 4 == 6 -- maxTres 6 7 4 == 7 -- maxTres 6 7 9 == 9 -- Indicación: Usar la función max. -- --------------------------------------------------------------------- maxTres x y z = max x (max y z) |