<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/WIKIS/I1M2021G2/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alvcancru</id>
	<title>Informática de 1º de Matemáticas [Curso 2021-22, Grupo 2] - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/WIKIS/I1M2021G2/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alvcancru"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php/Especial:Contribuciones/Alvcancru"/>
	<updated>2026-07-18T04:52:38Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Relaci%C3%B3n_3&amp;diff=261</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Relaci%C3%B3n_3&amp;diff=261"/>
		<updated>2021-10-21T09:13:49Z</updated>

		<summary type="html">&lt;p&gt;Alvcancru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;#039;haskell&amp;#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- I1M 2021-22: Rel_3.hs (20 de Octubre de 2021)&lt;br /&gt;
-- Definiciones por comprensión&lt;br /&gt;
-- Departamento de Ciencias de la Computación e I.A.&lt;br /&gt;
-- Universidad de Sevilla&lt;br /&gt;
-- =====================================================================&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Introducción                                                       --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- En esta relación se presentan ejercicios con definiciones por&lt;br /&gt;
-- comprensión correspondientes al tema 5 que se encuentra&lt;br /&gt;
--    http://www.cs.us.es/~jalonso/cursos/i1m/temas/tema-5.html&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1. Definir, por comprensión, la función &lt;br /&gt;
--    sumaDeCuadrados :: Integer -&amp;gt; Integer &lt;br /&gt;
-- tal que (sumaDeCuadrados n) es la suma de los cuadrados de los&lt;br /&gt;
-- primeros n números; es decir, 1^2 + 2^2 + ... + n^2. Por ejemplo,&lt;br /&gt;
--    sumaDeCuadrados 3    ==  14&lt;br /&gt;
--    sumaDeCuadrados 100  ==  338350&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- José Manuel García, Lucía Hernández&lt;br /&gt;
sumaDeCuadrados :: Integer -&amp;gt; Integer &lt;br /&gt;
sumaDeCuadrados n = sum [(x^2) | x &amp;lt;- [1..n]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2. Definir por comprensión la función &lt;br /&gt;
--    replica :: Int -&amp;gt; a -&amp;gt; [a]&lt;br /&gt;
-- tal que (replica n x) es la lista formada por n copias del elemento&lt;br /&gt;
-- x. Por ejemplo,  &lt;br /&gt;
--    replica 4 7     ==  [7,7,7,7]&lt;br /&gt;
--    replica 3 True  ==  [True, True, True]&lt;br /&gt;
-- Nota: La función replica es equivalente a la predefinida replicate.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- José Manuel García&lt;br /&gt;
replica :: Int -&amp;gt; a -&amp;gt; [a]&lt;br /&gt;
replica n x = [x | _ &amp;lt;- [1..n]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3.1. Definir la función &lt;br /&gt;
--    suma :: Integer -&amp;gt; Integer&lt;br /&gt;
-- tal (suma n) es la suma de los n primeros números. Por ejemplo,&lt;br /&gt;
--    suma 3  ==  6&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- José Manuel García, Lucía Hernández&lt;br /&gt;
suma :: Integer -&amp;gt; Integer&lt;br /&gt;
suma n = sum [x | x &amp;lt;- [1..n]]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3.2. Los triángulos aritméticos se forman como sigue&lt;br /&gt;
--     1&lt;br /&gt;
--     2  3&lt;br /&gt;
--     4  5  6&lt;br /&gt;
--     7  8  9 10&lt;br /&gt;
--    11 12 13 14 15&lt;br /&gt;
--    16 17 18 19 20 21&lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función&lt;br /&gt;
--    linea :: Integer -&amp;gt; [Integer]&lt;br /&gt;
-- tal que (linea n) es la línea n-ésima de los triángulos&lt;br /&gt;
-- aritméticos. Por ejemplo,  &lt;br /&gt;
--    linea 4  ==  [7,8,9,10]&lt;br /&gt;
--    linea 5  ==  [11,12,13,14,15]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- José Manuel García&lt;br /&gt;
linea :: Integer -&amp;gt; [Integer]&lt;br /&gt;
linea n = [(1 + sum [1..n-1])..(1 + sum [1..n-1])+(n-1)]&lt;br /&gt;
-- cada primer elemento de cada fila sigue la siguiente sucesión:&lt;br /&gt;
-- F1 : 1  = 1&lt;br /&gt;
-- F2 : 1 + 1 = 2&lt;br /&gt;
-- F3 : 1 + 1 + 2 = 4&lt;br /&gt;
-- F4 : 1 + 1 + 2 + 3 = 7&lt;br /&gt;
-- F5 : 1 + 1 + 2 + 3 + 4 = 11&lt;br /&gt;
-- ...&lt;br /&gt;
-- Además, la Fila n tiene n elementos (Ej. la fila 3 es [4,5,6], tiene 3 elementos)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3.3. Definir la función &lt;br /&gt;
--    triangulo :: Integer -&amp;gt; [[Integer]]&lt;br /&gt;
-- tal que (triangulo n) es el triángulo aritmético de altura n. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    triangulo 3  ==  [[1],[2,3],[4,5,6]]&lt;br /&gt;
--    triangulo 4  ==  [[1],[2,3],[4,5,6],[7,8,9,10]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- José Manuel García&lt;br /&gt;
triangulo :: Integer -&amp;gt; [[Integer]]&lt;br /&gt;
triangulo n = [linea x | x &amp;lt;- [1..n]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4. Un entero positivo es perfecto si es igual a la suma de&lt;br /&gt;
-- sus factores, excluyendo el propio número. &lt;br /&gt;
-- &lt;br /&gt;
-- Definir por comprensión la función &lt;br /&gt;
--    perfectos :: Int -&amp;gt; [Int]&lt;br /&gt;
-- tal que (perfectos n) es la lista de todos los números perfectos&lt;br /&gt;
-- menores que n. Por ejemplo,  &lt;br /&gt;
--    perfectos 500  ==  [6,28,496]&lt;br /&gt;
-- Indicación: Usar la función factores del tema 5.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Lucía Hernández&lt;br /&gt;
factores n = [x | x&amp;lt;-[1..n-1], mod n x == 0]&lt;br /&gt;
perfectos :: Int -&amp;gt; [Int]&lt;br /&gt;
perfectos n = [x | x&amp;lt;- [1..n], x == sum (factores x)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5.1. Un número natural n se denomina abundante si es menor&lt;br /&gt;
-- que la suma de sus divisores propios. Por ejemplo, 12 y 30 son&lt;br /&gt;
-- abundantes pero 5 y 28 no lo son.&lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función &lt;br /&gt;
--    numeroAbundante :: Int -&amp;gt; Bool&lt;br /&gt;
-- tal que (numeroAbundante n) se verifica si n es un número&lt;br /&gt;
-- abundante. Por ejemplo,  &lt;br /&gt;
--    numeroAbundante 5  == False&lt;br /&gt;
--    numeroAbundante 12 == True&lt;br /&gt;
--    numeroAbundante 28 == False&lt;br /&gt;
--    numeroAbundante 30 == True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
numeroAbundante :: Int -&amp;gt; Bool&lt;br /&gt;
numeroAbundante n = n &amp;lt; (sum (factores n) - n)&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5.2. Definir la función  &lt;br /&gt;
--    numerosAbundantesMenores :: Int -&amp;gt; [Int]&lt;br /&gt;
-- tal que (numerosAbundantesMenores n) es la lista de números&lt;br /&gt;
-- abundantes menores o iguales que n. Por ejemplo,&lt;br /&gt;
--    numerosAbundantesMenores 50  ==  [12,18,20,24,30,36,40,42,48]&lt;br /&gt;
--    numerosAbundantesMenores 48  ==  [12,18,20,24,30,36,40,42,48]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
numerosAbundantesMenores :: Int -&amp;gt; [Int]&lt;br /&gt;
numerosAbundantesMenores n = [x | x &amp;lt;- [1..n], numeroAbundante x]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5.3. Definir la función &lt;br /&gt;
--    todosPares :: Int -&amp;gt; Bool&lt;br /&gt;
-- tal que (todosPares n) se verifica si todos los números abundantes&lt;br /&gt;
-- menores o iguales que n son pares. Por ejemplo,&lt;br /&gt;
--    todosPares 10    ==  True&lt;br /&gt;
--    todosPares 100   ==  True&lt;br /&gt;
--    todosPares 1000  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
todosPares :: Int -&amp;gt; Bool&lt;br /&gt;
todosPares n = and [x `rem` 2 == 0 | x &amp;lt;- numerosAbundantesMenores n]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5.4. Definir la constante &lt;br /&gt;
--    primerAbundanteImpar :: Int&lt;br /&gt;
-- que calcule el primer número natural abundante impar. Determinar el&lt;br /&gt;
-- valor de dicho número.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
primerAbundanteImpar :: Int&lt;br /&gt;
primerAbundanteImpar = head [x | x &amp;lt;- [1,3..], numeroAbundante x]&lt;br /&gt;
-- Su cálculo es&lt;br /&gt;
--    ghci&amp;gt; primerAbundanteImpar&lt;br /&gt;
--    945&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6 (Problema 1 del proyecto Euler) Definir la función &lt;br /&gt;
--    euler1 :: Int -&amp;gt; Int&lt;br /&gt;
-- tal que (euler1 n) es la suma de todos los múltiplos de 3 ó 5 menores&lt;br /&gt;
-- que n. Por ejemplo,&lt;br /&gt;
--    euler1 10  ==  23&lt;br /&gt;
-- &lt;br /&gt;
-- Calcular la suma de todos los múltiplos de 3 ó 5 menores que 1000.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
euler1 :: Int -&amp;gt; Int&lt;br /&gt;
euler1 n = sum [3*x | x &amp;lt;- [1..n] , 3*x &amp;lt; n] + sum [5*x | x &amp;lt;- [1..n], 5*x &amp;lt; n]&lt;br /&gt;
-- Cálculo:&lt;br /&gt;
--    ghci&amp;gt; euler1 1000&lt;br /&gt;
--    266333&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7. Definir la función &lt;br /&gt;
--    circulo :: Int -&amp;gt; Int&lt;br /&gt;
-- tal que (circulo n) es el la cantidad de pares de números naturales&lt;br /&gt;
-- (x,y) que se encuentran dentro del círculo de radio n. Por ejemplo, &lt;br /&gt;
--    circulo 3  ==  9&lt;br /&gt;
--    circulo 4  ==  15&lt;br /&gt;
--    circulo 5  ==  22&lt;br /&gt;
--    circulo 100  ==  7949&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
circulo :: Int -&amp;gt; Int&lt;br /&gt;
circulo n = length [(x,y) | x &amp;lt;- [0..n], y &amp;lt;- [0..n], x^2 + y^2 &amp;lt; n^2]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8.1. Definir la función &lt;br /&gt;
--    aproxE :: Double -&amp;gt; [Double]&lt;br /&gt;
-- tal que (aproXE n) es la lista cuyos elementos son los términos de la&lt;br /&gt;
-- sucesión (1+1/m)**m desde 1 hasta n. Por ejemplo, &lt;br /&gt;
--    aproxE 1 == [2.0]&lt;br /&gt;
--    aproxE 4 == [2.0,2.25,2.37037037037037,2.44140625]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
aproxE :: Double -&amp;gt; [Double]&lt;br /&gt;
aproxE n = [(1+1/m)**m | m &amp;lt;- [1..n]]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8.2. żCuál es el límite de la sucesión (1+1/m)**m ?&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8.3. Definir la función &lt;br /&gt;
--    errorAproxE :: Double -&amp;gt; Double&lt;br /&gt;
-- tal que (errorE x) es el menor número de términos de la sucesión&lt;br /&gt;
-- (1+1/m)**m necesarios para obtener su límite con un error menor que&lt;br /&gt;
-- x. Por ejemplo, &lt;br /&gt;
--    errorAproxE 0.1    ==  13.0&lt;br /&gt;
--    errorAproxE 0.01   ==  135.0&lt;br /&gt;
--    errorAproxE 0.001  ==  1359.0&lt;br /&gt;
-- Indicación: En Haskell, e se calcula como (exp 1).&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
errorAproxE :: Double -&amp;gt; Double&lt;br /&gt;
errorAproxE x = head [m | m &amp;lt;- [1..], (exp 1 - (1+1/m)**m) &amp;lt; x]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9.1. Definir la función&lt;br /&gt;
--    aproxLimSeno :: Double -&amp;gt; [Double]&lt;br /&gt;
-- tal que (aproxLimSeno n) es la lista cuyos elementos son los términos&lt;br /&gt;
-- de la sucesión  &lt;br /&gt;
--    sen(1/m) &lt;br /&gt;
--    --------&lt;br /&gt;
--      1/m &lt;br /&gt;
-- desde 1 hasta n. Por ejemplo,&lt;br /&gt;
--    aproxLimSeno 1 == [0.8414709848078965]&lt;br /&gt;
--    aproxLimSeno 2 == [0.8414709848078965,0.958851077208406]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
aproxLimSeno :: Double -&amp;gt; [Double]&lt;br /&gt;
aproxLimSeno n = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9.2. żCuál es el límite de la sucesión sen(1/m)/(1/m) ?&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9.3. Definir la función &lt;br /&gt;
--    errorLimSeno :: Double -&amp;gt; Double&lt;br /&gt;
-- tal que (errorLimSeno x) es el menor número de términos de la sucesión &lt;br /&gt;
-- sen(1/m)/(1/m) necesarios para obtener su límite con un error menor&lt;br /&gt;
-- que x. Por ejemplo, &lt;br /&gt;
--    errorLimSeno 0.1     ==   2.0&lt;br /&gt;
--    errorLimSeno 0.01    ==   5.0&lt;br /&gt;
--    errorLimSeno 0.001   ==  13.0&lt;br /&gt;
--    errorLimSeno 0.0001  ==  41.0&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
errorLimSeno :: Double -&amp;gt; Double&lt;br /&gt;
errorLimSeno x = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10.1. Definir la función &lt;br /&gt;
--    calculaPi :: Double -&amp;gt; Double&lt;br /&gt;
-- tal que (calculaPi n) es la aproximación del número pi calculada&lt;br /&gt;
-- mediante la expresión &lt;br /&gt;
--    4*(1 - 1/3 + 1/5 - 1/7 + ...+ (-1)**n/(2*n+1))&lt;br /&gt;
-- Por ejemplo,&lt;br /&gt;
--    calculaPi 3    ==  2.8952380952380956&lt;br /&gt;
--    calculaPi 300  ==  3.1449149035588526&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
calculaPi :: Double -&amp;gt; Double&lt;br /&gt;
calculaPi n = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10.2. Definir la función &lt;br /&gt;
--    errorPi :: Double -&amp;gt; Double&lt;br /&gt;
-- tal que (errorPi x) es el menor número de términos de la serie&lt;br /&gt;
--    4*(1 - 1/3 + 1/5 - 1/7 + ...+ (-1)**n/(2*n+1))&lt;br /&gt;
-- necesarios para obtener pi con un error menor que x. Por ejemplo,&lt;br /&gt;
--    errorPi 0.1    ==    9.0&lt;br /&gt;
--    errorPi 0.01   ==   99.0&lt;br /&gt;
--    errorPi 0.001  ==  999.0&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
errorPi :: Double -&amp;gt; Double&lt;br /&gt;
errorPi x = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11.1. Una terna (x,y,z) de enteros positivos es pitagórica&lt;br /&gt;
-- si x^2 + y^2 = z^2. &lt;br /&gt;
-- &lt;br /&gt;
-- Definir, por comprensión, la función &lt;br /&gt;
--    pitagoricas :: Int -&amp;gt; [(Int,Int,Int)]&lt;br /&gt;
-- tal que (pitagoricas n) es la lista de todas las ternas pitagóricas&lt;br /&gt;
-- cuyas componentes están entre 1 y n. Por ejemplo, &lt;br /&gt;
--    pitagoricas 10  ==  [(3,4,5),(4,3,5),(6,8,10),(8,6,10)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
pitagoricas :: Int -&amp;gt; [(Int,Int,Int)]&lt;br /&gt;
pitagoricas n = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11.2. Definir la función &lt;br /&gt;
--    numeroDePares :: (Int,Int,Int) -&amp;gt; Int&lt;br /&gt;
-- tal que (numeroDePares t) es el número de elementos pares de la terna&lt;br /&gt;
-- t. Por ejemplo,&lt;br /&gt;
--    numeroDePares (3,5,7)  ==  0&lt;br /&gt;
--    numeroDePares (3,6,7)  ==  1&lt;br /&gt;
--    numeroDePares (3,6,4)  ==  2&lt;br /&gt;
--    numeroDePares (4,6,4)  ==  3&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
numeroDePares :: (Int,Int,Int) -&amp;gt; Int&lt;br /&gt;
numeroDePares (x,y,z) = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11.3. Definir la función&lt;br /&gt;
--    conjetura :: Int -&amp;gt; Bool&lt;br /&gt;
-- tal que (conjetura n) se verifica si todas las ternas pitagóricas&lt;br /&gt;
-- cuyas componentes están entre 1 y n tiene un número impar de números&lt;br /&gt;
-- pares. Por ejemplo,&lt;br /&gt;
--    conjetura 10  ==  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
conjetura :: Int -&amp;gt; Bool&lt;br /&gt;
conjetura n = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11.4. Demostrar la conjetura para todas las ternas&lt;br /&gt;
-- pitagóricas. &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12.1. (Problema 9 del Proyecto Euler). Una terna pitagórica&lt;br /&gt;
-- es una terna de números naturales (a,b,c) tal que a&amp;lt;b&amp;lt;c y&lt;br /&gt;
-- a^2+b^2=c^2. Por ejemplo (3,4,5) es una terna pitagórica. &lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función &lt;br /&gt;
--    ternasPitagoricas :: Integer -&amp;gt; [[Integer]]&lt;br /&gt;
-- tal que (ternasPitagoricas x) es la lista de las ternas pitagóricas&lt;br /&gt;
-- cuya suma es x. Por ejemplo,&lt;br /&gt;
--    ternasPitagoricas 12  ==  [(3,4,5)]&lt;br /&gt;
--    ternasPitagoricas 60  ==  [(10,24,26),(15,20,25)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
ternasPitagoricas :: Integer -&amp;gt; [(Integer,Integer,Integer)]&lt;br /&gt;
ternasPitagoricas x = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12.2. Definir la constante &lt;br /&gt;
--    euler9 :: Integer&lt;br /&gt;
-- tal que euler9 es producto abc donde (a,b,c) es la única terna&lt;br /&gt;
-- pitagórica tal que a+b+c=1000.  &lt;br /&gt;
--&lt;br /&gt;
-- Calcular el valor de euler9.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
euler9 :: Integer&lt;br /&gt;
euler9 = undefined&lt;br /&gt;
&lt;br /&gt;
-- El cálculo del valor de euler9 es&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13. El producto escalar de dos listas de enteros xs y ys de&lt;br /&gt;
-- longitud n viene dado por la suma de los productos de los elementos&lt;br /&gt;
-- correspondientes. &lt;br /&gt;
-- &lt;br /&gt;
-- Definir por comprensión la función &lt;br /&gt;
--    productoEscalar :: [Int] -&amp;gt; [Int] -&amp;gt; Int&lt;br /&gt;
-- tal que (productoEscalar xs ys) es el producto escalar de las listas&lt;br /&gt;
-- xs e ys. Por ejemplo,&lt;br /&gt;
--    productoEscalar [1,2,3] [4,5,6]  ==  32&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
productoEscalar :: [Int] -&amp;gt; [Int] -&amp;gt; Int&lt;br /&gt;
productoEscalar xs ys = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14. Definir, por comprensión, la función&lt;br /&gt;
--    sumaConsecutivos :: [Int] -&amp;gt; [Int]&lt;br /&gt;
-- tal que (sumaConsecutivos xs) es la suma de los pares de elementos&lt;br /&gt;
-- consecutivos de la lista xs. Por ejemplo,&lt;br /&gt;
--    sumaConsecutivos [3,1,5,2]  ==  [4,6,7]&lt;br /&gt;
--    sumaConsecutivos [3]        ==  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sumaConsecutivos :: [Int] -&amp;gt; [Int]&lt;br /&gt;
sumaConsecutivos xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15. Los polinomios pueden representarse de forma dispersa o&lt;br /&gt;
-- densa. Por ejemplo, el polinomio 6x^4-5x^2+4x-7 se puede representar&lt;br /&gt;
-- de forma dispersa por [6,0,-5,4,-7] y de forma densa por&lt;br /&gt;
-- [(4,6),(2,-5),(1,4),(0,-7)].  &lt;br /&gt;
-- &lt;br /&gt;
-- Definir la función &lt;br /&gt;
--    densa :: [Int] -&amp;gt; [(Int,Int)]&lt;br /&gt;
-- tal que (densa xs) es la representación densa del polinomio cuya&lt;br /&gt;
-- representación dispersa es xs. Por ejemplo, &lt;br /&gt;
--   densa [6,0,-5,4,-7]  ==  [(4,6),(2,-5),(1,4),(0,-7)]&lt;br /&gt;
--   densa [6,0,0,3,0,4]  ==  [(5,6),(2,3),(0,4)]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
densa :: [Int] -&amp;gt; [(Int,Int)]&lt;br /&gt;
densa xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.0. La bases de datos sobre actividades de personas pueden&lt;br /&gt;
-- representarse mediante listas de elementos de la forma (a,b,c,d),&lt;br /&gt;
-- donde a es el nombre de la persona, b su actividad, c su fecha de&lt;br /&gt;
-- nacimiento y d la de su fallecimiento. Un ejemplo es la siguiente que&lt;br /&gt;
-- usaremos a lo largo de este ejercicio,&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
personas :: [(String,String,Int,Int)]&lt;br /&gt;
personas = [(&amp;quot;Cervantes&amp;quot;,&amp;quot;Literatura&amp;quot;,1547,1616),&lt;br /&gt;
            (&amp;quot;Velazquez&amp;quot;,&amp;quot;Pintura&amp;quot;,1599,1660),&lt;br /&gt;
            (&amp;quot;Picasso&amp;quot;,&amp;quot;Pintura&amp;quot;,1881,1973),&lt;br /&gt;
            (&amp;quot;Beethoven&amp;quot;,&amp;quot;Musica&amp;quot;,1770,1823),&lt;br /&gt;
            (&amp;quot;Poincare&amp;quot;,&amp;quot;Ciencia&amp;quot;,1854,1912),&lt;br /&gt;
            (&amp;quot;Quevedo&amp;quot;,&amp;quot;Literatura&amp;quot;,1580,1654),&lt;br /&gt;
            (&amp;quot;Goya&amp;quot;,&amp;quot;Pintura&amp;quot;,1746,1828),&lt;br /&gt;
            (&amp;quot;Einstein&amp;quot;,&amp;quot;Ciencia&amp;quot;,1879,1955),&lt;br /&gt;
            (&amp;quot;Mozart&amp;quot;,&amp;quot;Musica&amp;quot;,1756,1791),&lt;br /&gt;
            (&amp;quot;Botticelli&amp;quot;,&amp;quot;Pintura&amp;quot;,1445,1510),&lt;br /&gt;
            (&amp;quot;Borromini&amp;quot;,&amp;quot;Arquitectura&amp;quot;,1599,1667),&lt;br /&gt;
            (&amp;quot;Bach&amp;quot;,&amp;quot;Musica&amp;quot;,1685,1750)]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.1. Definir la función&lt;br /&gt;
--    nombres :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
-- tal que (nombres bd) es la lista de los nombres de las personas de la&lt;br /&gt;
-- base de datos bd. Por ejemplo,  &lt;br /&gt;
--    ghci&amp;gt; nombres personas&lt;br /&gt;
--     [&amp;quot;Cervantes&amp;quot;,&amp;quot;Velazquez&amp;quot;,&amp;quot;Picasso&amp;quot;,&amp;quot;Beethoven&amp;quot;,&amp;quot;Poincare&amp;quot;,&lt;br /&gt;
--      &amp;quot;Quevedo&amp;quot;,&amp;quot;Goya&amp;quot;,&amp;quot;Einstein&amp;quot;,&amp;quot;Mozart&amp;quot;,&amp;quot;Botticelli&amp;quot;,&amp;quot;Borromini&amp;quot;,&amp;quot;Bach&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
nombres :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
nombres bd = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.2. Definir la función&lt;br /&gt;
--    musicos :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
-- tal que (musicos bd) es la lista de los nombres de los músicos de la&lt;br /&gt;
-- base de datos bd. Por ejemplo,  &lt;br /&gt;
--    musicos personas  ==  [&amp;quot;Beethoven&amp;quot;,&amp;quot;Mozart&amp;quot;,&amp;quot;Bach&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
musicos :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
musicos bd = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.3. Definir la función &lt;br /&gt;
--    seleccion :: [(String,String,Int,Int)] -&amp;gt; String -&amp;gt; [String]&lt;br /&gt;
-- tal que (seleccion bd m) es la lista de los nombres de las personas&lt;br /&gt;
-- de la base de datos bd cuya actividad es m. Por ejemplo,  &lt;br /&gt;
--    ghci&amp;gt; seleccion personas &amp;quot;Pintura&amp;quot;&lt;br /&gt;
--    [&amp;quot;Velazquez&amp;quot;,&amp;quot;Picasso&amp;quot;,&amp;quot;Goya&amp;quot;,&amp;quot;Botticelli&amp;quot;]&lt;br /&gt;
--    ghci&amp;gt; seleccion personas &amp;quot;Musica&amp;quot;&lt;br /&gt;
--    [&amp;quot;Beethoven&amp;quot;,&amp;quot;Mozart&amp;quot;,&amp;quot;Bach&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
seleccion :: [(String,String,Int,Int)] -&amp;gt; String -&amp;gt; [String]&lt;br /&gt;
seleccion bd m = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.4. Definir, usando el apartado anterior, la función&lt;br /&gt;
--    musicos&amp;#039; :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
-- tal que (musicos&amp;#039; bd) es la lista de los nombres de los músicos de la&lt;br /&gt;
-- base de datos bd. Por ejemplo,   &lt;br /&gt;
--    ghci&amp;gt; musicos&amp;#039; personas&lt;br /&gt;
--    [&amp;quot;Beethoven&amp;quot;,&amp;quot;Mozart&amp;quot;,&amp;quot;Bach&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
musicos&amp;#039; :: [(String,String,Int,Int)] -&amp;gt; [String]&lt;br /&gt;
musicos&amp;#039; bd = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16.5. Definir la función &lt;br /&gt;
--    vivas :: [(String,String,Int,Int)] -&amp;gt; Int -&amp;gt; [String]&lt;br /&gt;
-- tal que (vivas bd a) es la lista de los nombres de las personas de la&lt;br /&gt;
-- base de datos bd  que estaban vivas en el ańo a. Por ejemplo,  &lt;br /&gt;
--    ghci&amp;gt; vivas personas 1600&lt;br /&gt;
--    [&amp;quot;Cervantes&amp;quot;,&amp;quot;Velazquez&amp;quot;,&amp;quot;Quevedo&amp;quot;,&amp;quot;Borromini&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
vivas :: [(String,String,Int,Int)] -&amp;gt; Int -&amp;gt; [String]&lt;br /&gt;
vivas ps a = undefined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alvcancru</name></author>
	</entry>
	<entry>
		<id>https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Relaci%C3%B3n_1&amp;diff=27</id>
		<title>Relación 1</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/WIKIS/I1M2021G2/index.php?title=Relaci%C3%B3n_1&amp;diff=27"/>
		<updated>2021-09-24T08:37:16Z</updated>

		<summary type="html">&lt;p&gt;Alvcancru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;#039;haskell&amp;#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- I1M 2021-22: Rel_1.hs (24 de septiembre de 2021)&lt;br /&gt;
-- Definiciones por composición sobre números, listas y booleanos. &lt;br /&gt;
-- Departamento de Ciencias de la Computación e I.A.&lt;br /&gt;
-- Universidad de Sevilla&lt;br /&gt;
-- =====================================================================&lt;br /&gt;
&lt;br /&gt;
import Data.List&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Introducción                                                       --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- En esta relación se plantean ejercicios con definiciones de funciones &lt;br /&gt;
-- por composición sobre números, listas y booleanos.&lt;br /&gt;
-- &lt;br /&gt;
-- Para solucionar los ejercicios puede ser útil el manual de&lt;br /&gt;
-- funciones de Haskell que se encuentra en http://bit.ly/1uJZiqi y su&lt;br /&gt;
-- resumen en http://bit.ly/ZwSMHO&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1. Definir la función media3 tal que (media3 x y z) es&lt;br /&gt;
-- la media aritmética de los números x, y y z. Por ejemplo, &lt;br /&gt;
--    media3 1 3 8     ==  4.0&lt;br /&gt;
--    media3 (-1) 0 7  ==  2.0&lt;br /&gt;
--    media3 (-3) 0 3  ==  0.0&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
media3 x y z = undefined&lt;br /&gt;
-- Miguel Ángel Martínez&lt;br /&gt;
media3 x y z = .sdfsdfadf&lt;br /&gt;
-- Manuel Alcaide García, Lucía Hernández, Adriana Gordillo Melero&lt;br /&gt;
media3 x y z = (x+y+z)/3&lt;br /&gt;
-- Antonio López García&lt;br /&gt;
media3 x y z = (sum [x,y,z])/3&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2. Definir la función sumaMonedas tal que &lt;br /&gt;
-- (sumaMonedas a b c d e) es la suma de los euros correspondientes a &lt;br /&gt;
-- a monedas de 1 euro, b de 2 euros, c de 5 euros, d 10 euros y&lt;br /&gt;
-- e de 20 euros. Por ejemplo,&lt;br /&gt;
--    sumaMonedas 0 0 0 0 1  ==  20&lt;br /&gt;
--    sumaMonedas 0 0 8 0 3  == 100&lt;br /&gt;
--    sumaMonedas 1 1 1 1 1  ==  38&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sumaMonedas a b c d e = undefined&lt;br /&gt;
-- Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Lucía Hernández&lt;br /&gt;
sumamonedas a b c d e = a+b*2+c*5+d*10+e*20&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3. Definir la función volumenEsfera tal que &lt;br /&gt;
-- (volumenEsfera r) es el volumen de la esfera de radio r. Por ejemplo,&lt;br /&gt;
--    volumenEsfera 10  ==  4188.790204786391&lt;br /&gt;
-- Indicación: Usar la constante pi.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
volumenEsfera r = undefined &lt;br /&gt;
-- Adriana Gordillo Melero, Lucía Hernández, Nicolás Rodríguez Ruiz&lt;br /&gt;
 volumenEsfera r = (4/3)*pi*r^3&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4. Definir la función areaDeCoronaCircular tal que &lt;br /&gt;
-- (areaDeCoronaCircular r1 r2) es el área de una corona circular de&lt;br /&gt;
-- radio interior r1 y radio exterior r2. Por ejemplo,&lt;br /&gt;
--    areaDeCoronaCircular 1 2 == 9.42477796076938&lt;br /&gt;
--    areaDeCoronaCircular 2 5 == 65.97344572538566&lt;br /&gt;
--    areaDeCoronaCircular 3 5 == 50.26548245743669&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Lucía Hernández, Adriana Gordillo Melero&lt;br /&gt;
areaDeCoronaCircular r1 r2 = pi*r2^2 - pi*r1^2&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
areaDeCoronaCircular r1 r2 = pi*(r2^2-r1^2)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5. Definir la función ultimaCifra tal que (ultimaCifra x)&lt;br /&gt;
-- es la última cifra del nímero x. Por ejemplo,&lt;br /&gt;
--    ultimaCifra 325  ==  5&lt;br /&gt;
-- Indicación: Usar la función rem&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Lucía Hernández&lt;br /&gt;
ultimaCifra x = rem x 10&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6. Definir la función maxTres tal que (maxTres x y z) es&lt;br /&gt;
-- el máximo de x, y y z. Por ejemplo,&lt;br /&gt;
--    maxTres 6 2 4  ==  6&lt;br /&gt;
--    maxTres 6 7 4  ==  7&lt;br /&gt;
--    maxTres 6 7 9  ==  9&lt;br /&gt;
-- Indicación: Usar la función max.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Lucía Hernández&lt;br /&gt;
maxTres x y z = max(max x y)(z)&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7. Definir la función rota1 tal que (rota1 xs) es la lista&lt;br /&gt;
-- obtenida poniendo el primer elemento de xs al final de la lista. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    rota1 [3,2,5,7]  ==  [2,5,7,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--Lucía Hernández&lt;br /&gt;
rota1 xs = tail xs ++ [head xs]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8. Definir la función rota tal que (rota n xs) es la lista&lt;br /&gt;
-- obtenida poniendo los n primeros elementos de xs al final de la&lt;br /&gt;
-- lista. Por ejemplo, &lt;br /&gt;
--    rota 1 [3,2,5,7]  ==  [2,5,7,3]&lt;br /&gt;
--    rota 2 [3,2,5,7]  ==  [5,7,3,2]&lt;br /&gt;
--    rota 3 [3,2,5,7]  ==  [7,3,2,5]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Lucía Hernández&lt;br /&gt;
rota n xs = drop n xs ++ take n xs&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9. Definir la función rango tal que (rango xs) es la&lt;br /&gt;
-- lista formada por el menor y mayor elemento de xs.&lt;br /&gt;
--    rango [3,2,7,5]  ==  [2,7]&lt;br /&gt;
-- Indicación: Se pueden usar minimum y maximum.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- Lucía Hernández&lt;br /&gt;
rango xs = [minimum xs] ++ [maximum xs]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10. Definir la función palindromo tal que (palindromo xs) se&lt;br /&gt;
-- verifica si xs es un palíndromo; es decir, es lo mismo leer xs de&lt;br /&gt;
-- izquierda a derecha que de derecha a izquierda. Por ejemplo,&lt;br /&gt;
--    palindromo [3,2,5,2,3]    ==  True&lt;br /&gt;
--    palindromo [3,2,5,6,2,3]  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
palindromo xs = xs == reverse xs&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11. Definir la función interior tal que (interior xs) es la&lt;br /&gt;
-- lista obtenida eliminando los extremos de la lista xs. Por ejemplo,&lt;br /&gt;
--    interior [2,5,3,7,3]  ==  [5,3,7]&lt;br /&gt;
--    interior [2..7]       ==  [3,4,5,6]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interior xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12. Definir la función finales tal que (finales n xs) es la&lt;br /&gt;
-- lista formada por los n finales elementos de xs. Por ejemplo,&lt;br /&gt;
--    finales 3 [2,5,4,7,9,6]  ==  [7,9,6]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
--Álvaro Cano&lt;br /&gt;
finales n xs = drop n xs&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13. Definir la función segmento tal que (segmento m n xs) es&lt;br /&gt;
-- la lista de los elementos de xs comprendidos entre las posiciones m y&lt;br /&gt;
-- n. Por ejemplo,&lt;br /&gt;
--    segmento 3 4 [3,4,1,2,7,9,0]  ==  [1,2]&lt;br /&gt;
--    segmento 3 5 [3,4,1,2,7,9,0]  ==  [1,2,7]&lt;br /&gt;
--    segmento 5 3 [3,4,1,2,7,9,0]  ==  []&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
segmento m n xs = undefined&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14. Definir la función extremos tal que (extremos n xs) es&lt;br /&gt;
-- la lista formada por los n primeros elementos de xs y los n finales&lt;br /&gt;
-- elementos de xs. Por ejemplo, &lt;br /&gt;
--    extremos 3 [2,6,7,1,2,4,5,8,9,2,3]  ==  [2,6,7,9,2,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
extremos n xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15. Definir la función mediano tal que (mediano x y z) es el&lt;br /&gt;
-- número mediano de los tres números x, y y z. Por ejemplo,&lt;br /&gt;
--    mediano 3 2 5  ==  3&lt;br /&gt;
--    mediano 2 4 5  ==  4&lt;br /&gt;
--    mediano 2 6 5  ==  5&lt;br /&gt;
--    mediano 2 6 6  ==  6&lt;br /&gt;
-- Indicación: Usar maximum y minimum.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
mediano x y z = undefined&lt;br /&gt;
 &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16. Definir la función tresIguales tal que &lt;br /&gt;
-- (tresIguales x y z) se verifica si los elementos x, y y z son&lt;br /&gt;
-- iguales. Por ejemplo, &lt;br /&gt;
--    tresIguales 4 4 4  ==  True&lt;br /&gt;
--    tresIguales 4 3 4  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tresIguales x y z = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17. Definir la función tresDiferentes tal que &lt;br /&gt;
-- (tresDiferentes x y z) se verifica si los elementos x, y y z son&lt;br /&gt;
-- distintos. Por ejemplo, &lt;br /&gt;
--    tresDiferentes 3 5 2  ==  True&lt;br /&gt;
--    tresDiferentes 3 5 3  ==  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
tresDiferentes x y z = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 18. Definir la función cuatroIguales tal que &lt;br /&gt;
-- (cuatroIguales x y z u) se verifica si los elementos x, y, z y u son&lt;br /&gt;
-- iguales. Por ejemplo, &lt;br /&gt;
--    cuatroIguales 5 5 5 5   ==  True&lt;br /&gt;
--    cuatroIguales 5 5 4 5   ==  False&lt;br /&gt;
-- Indicación: Usar la función tresIguales.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
cuatroIguales x y z u = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicios para trabajar con Data.List. Ver:&lt;br /&gt;
-- http://www.cs.us.es/~jalonso/cursos/i1m-19/doc/Funciones_basicas.html&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19. Definir la función unicos, tal que (unicos xs)&lt;br /&gt;
-- devuelva la cantidad de elementos únicos que hay en la lista xs.&lt;br /&gt;
-- Por ejemplo, &lt;br /&gt;
--    unicos [1,4,8,2,1,4,6,1]  == 5 &lt;br /&gt;
--    unicos [10,9,8,10,5,10]  == 4&lt;br /&gt;
--    unicos [10,9,8]  == 3&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
unicos xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20. Definir la función segundoMinimo, tal que (segundoMinimo xs)&lt;br /&gt;
-- devuelve el segundo elemento más pequeńo de la lista xs, obviando &lt;br /&gt;
-- repeticiones. Por ejemplo, &lt;br /&gt;
--    segundoMinimo [6,9,2,4]  ==  4&lt;br /&gt;
--    segundoMinimo [0.5,1.2,0.5,4.4,0.5]  ==  1.2&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
segundoMinimo xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 21. Definir la función kMaximo, tal que (kMaximo n xs) &lt;br /&gt;
-- devuelve el k-máximo elemento de xs (es decir, el que está en la&lt;br /&gt;
-- posición k de valores más altos), obviando repeticiones. Por ejemplo, &lt;br /&gt;
--    kMaximo 2 [6,9,2,4]  == 6&lt;br /&gt;
--    kMaximo 3 [10,9,8,10,5]  == 8&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
kMaximo k xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 22. Definir la función numPermut, tal que (numPermut xs) &lt;br /&gt;
-- devuelve el número de permutaciones sin repetición posibles con los&lt;br /&gt;
-- elementos de la lista xs. Por ejemplo, &lt;br /&gt;
--    numPermut [6,2,4]  == 6&lt;br /&gt;
--    numPermut [10,8,10,5]  == 24&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
numPermut xs = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 23 Definir la función numPares, tal que (numPares xs)&lt;br /&gt;
-- devuelva cuantos números pares en total (sin repeticiones) aparecen&lt;br /&gt;
-- en la lista xs. Por ejemplo, &lt;br /&gt;
--    numPares [1,4,8,2,1,4,6,1]  == 4&lt;br /&gt;
--    numPares [10,9,8,10,5,10]  == 2&lt;br /&gt;
--    numPares [10,9,8]  == 2&lt;br /&gt;
-- Indicación: puede ser útil la función partitions&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
numPares xs = undefined&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Alvcancru</name></author>
	</entry>
</feed>