-- I1M 2009-10: G1_Rel_4.hs
-- 4ª relación de ejercicios (28 de Octubre)
-- Departamento de Ciencias de la Computación e I.A.
-- Universidad de Sevilla
-- =====================================================================

-- ---------------------------------------------------------------------
-- Ejercicio 1. Definir la función media3 que reciba como argumentos 
-- tres números y devuelva la media aritmética de dichos números. Por 
-- ejemplo, 
--    media3 1 3 8     =>  4.0
--    media3 (-1) 0 7  =>  2.0
--    media3 (-3) 0 3  =>  0.0
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 2. Definir la función sumaMonedas que reciba los
-- siguientes argumentos: euros, dos-euros, cinco-euros, diez-euros y
-- veinte-eros y devuelva la cantidad total de euros. Por ejemplo,
--    sumaMonedas 0 0 0 0 1  =>  20
--    sumaMonedas 0 0 8 0 3  => 100
--    sumaMonedas 1 1 1 1 1  =>  38
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 3. Definir la función areaDeCoronaCircular que calcule el 
-- área de una corona circular a partir de los radios interior y 
-- exterior de la misma. 
--    areaDeCoronaCircular 1 2 => 9.42477796076938
--    areaDeCoronaCircular 2 5 => 65.9734457253857
--    areaDeCoronaCircular 3 5 => 50.2654824574367
-- Indicación: Usar la constante pi.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 4. Definir la función intercala que reciba dos listas xs e 
-- ys de dos elementos cada una, y devuelva una lista de cuatro 
-- elementos, construida intercalando los elementos de xs e ys. Por
-- ejemplo,
--    intercala [1,4] [3,2]  =>  [1,3,4,2]
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 5. Definir la función reagrupa que tome una tupla cuyos
-- elementos son tres tuplas de tres elementos cada una, y actúe del 
-- siguiente modo:
--    reagrupa ((1,2,3),(4,5,6),(7,8,9))  =>  ((1,4,7),(2,5,8),(3,6,9))
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 6. Definir la función maxMin que reciba cuatro números, y 
-- devuelva una lista formada por dos pares de la forma ("min",x) y 
-- ("max". y) donde x e y son el mínimo y el máximo de los cuatro 
-- números.
--    maxMin 2 5 (-1) 7  => [("min",-1),("max",7)]
--    maxMin 0 5 9 4     => [("min",0),("max",9)]
-- Indicación: Usar las funciones minimum y maximum.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 7. Definir la función tresIguales tal que 
-- (tresIguales x y z) se verifica si los elementos x, y y z son
-- iguales. Por ejemplo,
--    tresIguales 2 3 2  =>  False
--    tresIguales 2 2 2  =>  True
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 8. Definir la función tresDiferentes tal que 
-- (tresDiferentes x y z) se verifica si los elementos x, y y z son
-- distintos. Por ejemplo,
--    tresDiferentes 2 3 5  =>  True
--    tresDiferentes 2 3 2  =>  False
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 9. Definir la función cuatroIguales tal que 
-- (cuatroIguales x y z u) se verifica si los elementos x, y, z y u son
-- iguales. Por ejemplo,
--    cuatroIguales 3 3 3 3  =>  True
--    cuatroIguales 3 3 2 3  =>  False
-- Indicación: Usar la función tresIguales.
-- ---------------------------------------------------------------------

-- ---------------------------------------------------------------------
-- Ejercicio 10. Definir la función maxTres tal que (maxTres x y z) es
-- el máximo de x, y y z. Por ejemplo,
--    maxTres 7 3  5   =>  5
--    maxTres 7 12 5   =>  12
--    maxTres 7 12 50  => 50
-- ---------------------------------------------------------------------

