Diferencia entre revisiones de «Relación 1»
De Informática de 1º de Matemáticas [Curso 2021-22, Grupo 2]
(No se muestran 11 ediciones intermedias de 9 usuarios) | |||
Línea 27: | Línea 27: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Manuel Alcaide García, Lucía Hernández, Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Irene Ortega Moncayo, Laura Arango, Ana Sosa Caballero, Adolfo Sagrera Vivancos, Pelayo INfante Pérez, Sara Cerro Torres, Manuel Fco Moreno, Virginia Sánchez, Carmen Blanco, José Manuel Garcia, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | -- Manuel Alcaide García, Lucía Hernández, Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Irene Ortega Moncayo, Laura Arango, Ana Sosa Caballero, Adolfo Sagrera Vivancos, Pelayo INfante Pérez, Sara Cerro Torres, Manuel Fco Moreno, Virginia Sánchez, Ángela Pérez Ríos, Carmen Blanco, José Manuel Garcia, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández, Daniel Kock Cabrera, Ana Sánchez Martín | ||
media3 x y z = (x+y+z)/3 | media3 x y z = (x+y+z)/3 | ||
-- Antonio López García, César Fornis Catalán | -- Antonio López García, César Fornis Catalán | ||
Línea 44: | Línea 44: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Lucía Hernández, Manuel Fco Moreno, Laura Arango, Ana Sosa Caballero, Sara Cerro Torres, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez | -- Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Lucía Hernández, Manuel Fco Moreno, Laura Arango, Ana Sosa Caballero, Sara Cerro Torres, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Víctor Fernández, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín | ||
sumamonedas a b c d e = a+b*2+c*5+d*10+e*20 | sumamonedas a b c d e = a+b*2+c*5+d*10+e*20 | ||
-- Antonio López García, Irene Ortega, César Fornis Catalán, Virginia Sánchez, Elsa Domínguez | -- Antonio López García, Irene Ortega, César Fornis Catalán, Virginia Sánchez, Elsa Domínguez | ||
Línea 50: | Línea 50: | ||
-- Adolfo Sagrera Vivancos, Lucía González, Pelayo Infante, Francisco José Espinosa, Carmen Blanco, José Manuel García | -- Adolfo Sagrera Vivancos, Lucía González, Pelayo Infante, Francisco José Espinosa, Carmen Blanco, José Manuel García | ||
sumaMonedas a b c d e = a*1+b*2+c*5+d*10+e*20 | sumaMonedas a b c d e = a*1+b*2+c*5+d*10+e*20 | ||
-- Elena Delgado | |||
sumaMonedas a b c d e = a+b*2+c*5+d*10+e*20 | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
Línea 58: | Línea 60: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Adriana Gordillo Melero, Lucía Hernández, Nicolás Rodríguez Ruiz, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Pelayo Infante, Sara Cerro Torres, José Manuel García, Manuel Fco Moreno, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | -- Adriana Gordillo Melero, Lucía Hernández, Nicolás Rodríguez Ruiz, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Pelayo Infante, Sara Cerro Torres, José Manuel García, Manuel Fco Moreno, Rafael Gómez, Ángela Pérez Ríos, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández,Daniel Kock Cabrera, Ana Sánchez Martín | ||
volumenEsfera r = (4/3)*pi*r^3 | volumenEsfera r = (4/3)*pi*r^3 | ||
-- Adolfo Sagrera Vivancos, Carmen Blanco | -- Adolfo Sagrera Vivancos, Carmen Blanco | ||
Línea 77: | Línea 79: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Lucía Hernández, Adriana Gordillo Melero, Antonio López García, Lucía González, Nicolás Rodríguez Ruiz, Sara Cerro Torres, Elsa Domínguez | --Lucía Hernández, Adriana Gordillo Melero, Antonio López García, Lucía González, Nicolás Rodríguez Ruiz, Sara Cerro Torres, Ángela Pérez Ríos, Elsa Domínguez,Daniel Kock Cabrera | ||
areaDeCoronaCircular r1 r2 = pi*r2^2 - pi*r1^2 | areaDeCoronaCircular r1 r2 = pi*r2^2 - pi*r1^2 | ||
--Álvaro Cano, Ana Sosa Caballero, Irene Ortega, César Fornis Catalán,Manuel Fco Moreno, José Manuel García, Rafael Gómez, Iván García Rodríguez | --Álvaro Cano, Ana Sosa Caballero, Irene Ortega, César Fornis Catalán,Manuel Fco Moreno, José Manuel García, Rafael Gómez, Iván García Rodríguez, Víctor Fernández,Ana Sánchez Martín | ||
areaDeCoronaCircular r1 r2 = pi*(r2^2-r1^2) | areaDeCoronaCircular r1 r2 = pi*(r2^2-r1^2) | ||
--Laura Arango | --Laura Arango | ||
Línea 87: | Línea 89: | ||
areaDeCoronaCircular r1 r2 = (pi*r2^2)-(pi*r1^2) | areaDeCoronaCircular r1 r2 = (pi*r2^2)-(pi*r1^2) | ||
-- Carmen Blanco | -- Carmen Blanco | ||
-- Virginia Sánchez | -- Virginia Sánchez, Elena Delgado | ||
areaDeCoronaCircular r1 r2 = (pi*(r2)^2) - (pi*(r1)^2) | areaDeCoronaCircular r1 r2 = (pi*(r2)^2) - (pi*(r1)^2) | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
Línea 96: | Línea 98: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Lucía Hernández, Adriana Gordillo Melero, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Adolfo Sagrera Vivancos Francisco José Espinosa, Lucía González, Nicolás Rodríguez Ruiz, Irene Ortega, Carmen Blanco, Manuel Fco Moreno, César Fornis Catalán, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | --Lucía Hernández, Adriana Gordillo Melero, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Adolfo Sagrera Vivancos Francisco José Espinosa, Lucía González, Nicolás Rodríguez Ruiz, Irene Ortega, Carmen Blanco, Manuel Fco Moreno, César Fornis Catalán, Ángela Pérez Ríos, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín | ||
ultimaCifra x = rem x 10 | ultimaCifra x = rem x 10 | ||
Línea 109: | Línea 111: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Lucía Hernández, Laura Arango, Adriana Gordillo, Irene Ortega, Nicolás Rodríguez Ruiz, Manuel Fco Moreno, Rafael Gómez, Jaime Chaves Navarro | --Lucía Hernández, Laura Arango, Adriana Gordillo, Irene Ortega, Nicolás Rodríguez Ruiz, Manuel Fco Moreno, Rafael Gómez, Ángela Pérez Ríos, Jaime Chaves Navarro, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera | ||
maxTres x y z = max(max x y)(z) | maxTres x y z = max(max x y)(z) | ||
-- Ana Sosa Caballero, Adolfo Sagrera Vivancos, Iván García Rodríguez | -- Ana Sosa Caballero, Adolfo Sagrera Vivancos, Iván García Rodríguez | ||
Línea 115: | Línea 117: | ||
where t = max y z | where t = max y z | ||
-- Antonio López García, Lucía González, Carmen Blanco | -- Antonio López García, Lucía González, Carmen Blanco, Elena Delgado | ||
maxTres x y z = maximum [x,y,z] | maxTres x y z = maximum [x,y,z] | ||
--César Fornis Catalán, José Manuel García, Elsa Domínguez | --César Fornis Catalán, José Manuel García, Elsa Domínguez | ||
maxTres x y z = max (max x y) z | maxTres x y z = max (max x y) z | ||
-- Ana Sánchez Martín | |||
maxTres x y z = max x (max y z) | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Ejercicio 7. Definir la función rota1 tal que (rota1 xs) es la lista | -- Ejercicio 7. Definir la función rota1 tal que (rota1 xs) es la lista | ||
Línea 126: | Línea 130: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero , Irene Ortega, Lucía González, Nicolás Rodríguez Ruiz, Carmen Blanco, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | --Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero , Irene Ortega, Lucía González, Nicolás Rodríguez Ruiz, Carmen Blanco, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Ángela Pérez Ríos, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera | ||
rota1 xs = tail xs ++ [head xs] | rota1 xs = tail xs ++ [head xs] | ||
-- Antonio López García | -- Antonio López García, Ana Sánchez Martín | ||
rota1 xs = drop 1 xs ++ take 1 xs | rota1 xs = drop 1 xs ++ take 1 xs | ||
Línea 140: | Línea 144: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero, Antonio López García, Irene Ortega, Lucía González, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | -- Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero, Antonio López García, Irene Ortega, Lucía González, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín | ||
rota n xs = drop n xs ++ take n xs | rota n xs = drop n xs ++ take n xs | ||
Línea 153: | Línea 157: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Lucía Hernández, Laura Arango, Irene Ortega, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Jaime Chaves Navarro, Sara Cerro Torres, Adriana Gordillo, Elsa Domínguez | -- Lucía Hernández, Laura Arango, Irene Ortega, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Jaime Chaves Navarro, Sara Cerro Torres, Adriana Gordillo, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín | ||
rango xs = [minimum xs] ++ [maximum xs] | rango xs = [minimum xs] ++ [maximum xs] | ||
-- Ana Sosa Caballero, Antonio López García, Iván García Rodríguez | -- Ana Sosa Caballero, Antonio López García, Iván García Rodríguez | ||
Línea 165: | Línea 169: | ||
-- palindromo [3,2,5,6,2,3] == False | -- palindromo [3,2,5,6,2,3] == False | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Álvaro Cano, José Manuel Sánchez Parra, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía Hernández, Manuel Alcaide, Lucía González , Irene Ortega, José Manuel García ,Rafael Gómez, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Jaime Chaves Navarro, Adriana Gordillo, Elsa Domínguez | --Álvaro Cano, José Manuel Sánchez Parra, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía Hernández, Manuel Alcaide, Lucía González , Irene Ortega, José Manuel García ,Rafael Gómez, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Jaime Chaves Navarro, Adriana Gordillo, Ángela Pérez Ríos, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín | ||
palindromo xs = xs == reverse xs | palindromo xs = xs == reverse xs | ||
--Iván García Rodríguez | --Iván García Rodríguez | ||
Línea 177: | Línea 181: | ||
-- interior [2..7] == [3,4,5,6] | -- interior [2..7] == [3,4,5,6] | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Lucía Hernández, Ana Sosa Caballero, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Adriana Gordillo | --Lucía Hernández, Ana Sosa Caballero, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Adriana Gordillo, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres | ||
interior xs = tail (init xs) | interior xs = tail (init xs) | ||
--Laura Arango | --Laura Arango | ||
interior xs = drop 1 (init xs) | interior xs = drop 1 (init xs) | ||
--Fernando Ruiz, Antonio López García, Irene Ortega, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez | --Fernando Ruiz, Antonio López García, Irene Ortega, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez,Daniel Kock Cabrera, Ana Sánchez Martín | ||
interior xs = init (tail xs) | interior xs = init (tail xs) | ||
--Manuel Alcaide García | --Manuel Alcaide García | ||
Línea 195: | Línea 199: | ||
-- finales 3 [2,5,4,7,9,6] == [7,9,6] | -- finales 3 [2,5,4,7,9,6] == [7,9,6] | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Álvaro Cano | --Álvaro Cano, Víctor Fernández, Ana Sánchez Martín | ||
finales n xs = drop n xs | finales n xs = drop n xs | ||
-- Lucía Hernández, Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz | -- Lucía Hernández, Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz | ||
Línea 202: | Línea 206: | ||
finales n xs = drop m xs | finales n xs = drop m xs | ||
where m = length xs - n | where m = length xs - n | ||
-- Antonio López García, Fernando Ruiz Mazo, Pelayo Infante, Manuel Fco Moreno, Manuel Alcaide García, Irene Ortega, Adriana Gordillo, Iván García Rodríguez, Elsa Domínguez, Lucía González | -- Antonio López García, Fernando Ruiz Mazo, Pelayo Infante, Manuel Fco Moreno, Manuel Alcaide García, Irene Ortega, Adriana Gordillo, Iván García Rodríguez, Elsa Domínguez, Lucía González, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
finales n xs = drop (length xs - n) xs | finales n xs = drop (length xs - n) xs | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
Línea 213: | Línea 217: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Adriana Gordillo, Elsa Domínguez | --Laura Arango, Adriana Gordillo, Elsa Domínguez, Víctor Fernández | ||
segmento m n xs = drop (m-1) (reverse (drop a ys)) | segmento m n xs = drop (m-1) (reverse (drop a ys)) | ||
where a = length xs - n | where a = length xs - n | ||
ys = reverse xs | ys = reverse xs | ||
-- Ana Sosa Caballero, Antonio López García, Lucía González, Manuel Fco Moreno, Iván García Rodríguez, Adolfo Sagrera Vivancos | -- Ana Sosa Caballero, Antonio López García, Lucía González, Manuel Fco Moreno, Iván García Rodríguez, Adolfo Sagrera Vivancos, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín | ||
segmento m n xs = drop (m-1) (take n xs) | segmento m n xs = drop (m-1) (take n xs) | ||
-- Fernando Ruiz | -- Fernando Ruiz | ||
Línea 227: | Línea 231: | ||
--Pelayo Infante,] | --Pelayo Infante,] | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Víctor Fernández | |||
extremos n xs = take n xs ++ drop h xs | |||
where h = length xs - n | |||
--Laura Arango | --Laura Arango | ||
extremos n xs = take n xs ++ finales n XS | extremos n xs = take n xs ++ finales n XS | ||
-- Ana Sosa Caballero, Lucía Hernández, Fernando Ruiz, Adriana Gordillo, Manuel Fco Moreno,Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz, Lucía González | -- Ana Sosa Caballero, Lucía Hernández, Fernando Ruiz, Adriana Gordillo, Manuel Fco Moreno,Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz, Lucía González,Daniel Kock Cabrera, Ana Sánchez Martín | ||
extremos n xs = take n xs ++ reverse (take n (reverse xs)) | extremos n xs = take n xs ++ reverse (take n (reverse xs)) | ||
-- Irene Ortega, Pelayo Infante, Iván García Rodríguez, Elsa Domínguez | -- Irene Ortega, Pelayo Infante, Iván García Rodríguez, Elsa Domínguez | ||
Línea 252: | Línea 258: | ||
-- Fernando Ruiz Mazo, Irene Ortega | -- Fernando Ruiz Mazo, Irene Ortega | ||
mediano x y z = minimum ([maximum [x,y]] ++ [maximum [y,z]] ++ [maximum [x,z]]) | mediano x y z = minimum ([maximum [x,y]] ++ [maximum [y,z]] ++ [maximum [x,z]]) | ||
-- Adriana Gordillo, Elsa Domínguez, Adolfo Sagrera Vivancos, Manuel Fco Moreno | -- Adriana Gordillo, Elsa Domínguez, Adolfo Sagrera Vivancos, Manuel Fco Moreno, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
mediano x y z = (x+y+z)-maximum[x,y,z]-minimum[x,y,z] | mediano x y z = (x+y+z)-maximum[x,y,z]-minimum[x,y,z] | ||
-- Lucía Hernández | -- Lucía Hernández | ||
Línea 258: | Línea 264: | ||
-- Iván García Rodríguez | -- Iván García Rodríguez | ||
mediano x y z = max x a where a=min y z | mediano x y z = max x a where a=min y z | ||
-- Ana Sánchez Martín | |||
mediano x y z = minimum [maximum[x,y], maximum[y,z], maximum[x,z]] | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Ejercicio 16. Definir la función tresIguales tal que | -- Ejercicio 16. Definir la función tresIguales tal que | ||
Línea 266: | Línea 274: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Ana Sosa Caballero, Lucía Hernández, Irene Ortega, Adriana Gordillo, Manuel Fco Moreno, Elsa Domínguez, Nicolás Rodríguez Ruiz | --Laura Arango, Ana Sosa Caballero, Lucía Hernández, Irene Ortega, Adriana Gordillo, Manuel Fco Moreno, Elsa Domínguez, Nicolás Rodríguez Ruiz, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín | ||
tresIguales x y z = x==y && x==z | tresIguales x y z = x==y && x==z | ||
--Pelayo Infante | --Pelayo Infante | ||
Línea 286: | Línea 294: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Lucía Hernández, Adriana Gordillo | --Laura Arango, Lucía Hernández, Adriana Gordillo, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
tresDiferentes x y z = x/=y && x/=z | tresDiferentes x y z = x/=y && x/=z | ||
-- Ana Sosa Caballero | -- Ana Sosa Caballero | ||
tresDiferentes x y z = and [x/=y, y/=z, x/=z] | tresDiferentes x y z = and [x/=y, y/=z, x/=z] | ||
--Irene Ortega | --Irene Ortega, Ana Sánchez Martín | ||
tresDiferentes x y z = x/=y && x/=z && y/=x | tresDiferentes x y z = x/=y && x/=z && y/=x | ||
-- Adolfo Sagrera Vivancos, Lucía González, Manuel Fco Moreno | -- Adolfo Sagrera Vivancos, Lucía González, Manuel Fco Moreno | ||
Línea 307: | Línea 315: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González | --Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
cuatroIguales x y z u = tresIguales x y z == True && x==u | cuatroIguales x y z u = tresIguales x y z == True && x==u | ||
-- Lucía Hernández, Nicolás Rodríguez Ruiz, Adolfo Sagrera Vivancos, Manuel Fco Moreno, Adriana Gordillo, Irene Ortega | -- Lucía Hernández, Nicolás Rodríguez Ruiz, Adolfo Sagrera Vivancos, Manuel Fco Moreno, Adriana Gordillo, Irene Ortega, Sara Cerro Torres, Ana Sánchez Martín | ||
cuatroIguales x y z u = tresIguales x y z && x==u | cuatroIguales x y z u = tresIguales x y z && x==u | ||
-- José Manuel García | -- José Manuel García | ||
cuatroIguales x y z u = x==y && y==z && z==u | cuatroIguales x y z u = x==y && y==z && z==u | ||
-- Alereyvil | |||
cuatroiguales' x y z u = if x==y && y==z && z==u | |||
then True | |||
else False | |||
--Víctor Fernández | |||
cuatroIguales x y z u = and [tresIguales x y z, u == x] | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Ejercicios para trabajar con Data.List. Ver: | -- Ejercicios para trabajar con Data.List. Ver: | ||
Línea 328: | Línea 341: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Lucía Hernández, Adriana Gordillo, Elsa Domínguez, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Irene Ortega | --Laura Arango, Lucía Hernández, Adriana Gordillo, Elsa Domínguez, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Irene Ortega, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín | ||
unicos xs = length (nub xs) | unicos xs = length (nub xs) | ||
-- Ana Sosa Caballero | -- Ana Sosa Caballero | ||
Línea 341: | Línea 354: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango | --Laura Arango, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
segundoMinimo xs = sort (nub xs) !! 1 | segundoMinimo xs = sort (nub xs) !! 1 | ||
--Lucía Hernández, Irene Ortega | --Lucía Hernández, Irene Ortega, Ana Sánchez Martín | ||
segundoMinimo xs = minimum (delete(minimum (xs))(nub xs)) | segundoMinimo xs = minimum (delete(minimum (xs))(nub xs)) | ||
-- Adriana Gordillo | -- Adriana Gordillo | ||
Línea 358: | Línea 371: | ||
segundoMinimo xs = minimum (delete (minimum js) js) | segundoMinimo xs = minimum (delete (minimum js) js) | ||
where js = nub xs | where js = nub xs | ||
--Víctor Fernández | |||
segundoMinimo xs = (drop 1(take 2 (sort (nub xs)))) | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Ejercicio 21. Definir la función kMaximo, tal que (kMaximo n xs) | -- Ejercicio 21. Definir la función kMaximo, tal que (kMaximo n xs) | ||
Línea 366: | Línea 381: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González, Manuel Fco Moreno | --Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González, Manuel Fco Moreno, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
kMaximo k xs = reverse (sort (nub xs)) !! (k-1) | kMaximo k xs = reverse (sort (nub xs)) !! (k-1) | ||
--José Manuel Sánchez Parra | --José Manuel Sánchez Parra | ||
kMaximo k xs = maximum(take k xs) | kMaximo k xs = maximum(take k xs) | ||
--Lucía Hernández | --Lucía Hernández, Ana Sánchez Martín | ||
kMaximo k xs = head(drop(k-1) (reverse(sort (nub xs)))) | kMaximo k xs = head(drop(k-1) (reverse(sort (nub xs)))) | ||
--Antonio Medinilla Garófano | --Antonio Medinilla Garófano | ||
Línea 385: | Línea 400: | ||
where js = reverse (sort (nub xs)) | where js = reverse (sort (nub xs)) | ||
--Nicolás Rodríguez Ruiz | --Nicolás Rodríguez Ruiz | ||
kMaximo k xs = sort(nub xs) !! ((length nub(xs)) - k) | kMaximo k xs = sort(nub xs) !! ((length (nub(xs))) - k) | ||
-- Alereyvil | |||
kMaximo' k xs = take k ys | |||
where ys == sort xs | |||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
-- Ejercicio 22. Definir la función numPermut, tal que (numPermut xs) | -- Ejercicio 22. Definir la función numPermut, tal que (numPermut xs) | ||
Línea 394: | Línea 412: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, Ana Sosa Caballero, Manuel Fco Moreno, Lucía Hernández, José Manuel Sánchez Parra, Elsa Domínguez, Lucía González, Adolfo Sagrera Vivancos, Irene Ortega | --Laura Arango, Ana Sosa Caballero, Manuel Fco Moreno, Lucía Hernández, José Manuel Sánchez Parra, Elsa Domínguez, Lucía González, Adolfo Sagrera Vivancos, Irene Ortega, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín | ||
numPermut xs = length (permutations xs) | numPermut xs = length (permutations xs) | ||
--Nicolás Rodríguez Ruiz, José Manuel García | --Nicolás Rodríguez Ruiz, José Manuel García | ||
Línea 411: | Línea 429: | ||
-- --------------------------------------------------------------------- | -- --------------------------------------------------------------------- | ||
--Laura Arango, José Manuel Sánchez Parra, Elsa Domínguez | --Laura Arango, José Manuel Sánchez Parra, Elsa Domínguez, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera | ||
numPares xs = length (nub (filter even xs)) | numPares xs = length (nub (filter even xs)) | ||
-- Ana Sosa Caballero | -- Ana Sosa Caballero | ||
numPares xs = length(group (sort (filter even xs))) | numPares xs = length(group (sort (filter even xs))) | ||
--Lucía Hernández, Adolfo Sagrera Vivancos | --Lucía Hernández, Adolfo Sagrera Vivancos, José Manuel García, Ana Sánchez Martín | ||
numPares xs = length(fst(partition even (nub xs))) | numPares xs = length(fst(partition even (nub xs))) | ||
--Lucía González, Manuel Fco Moreno | --Lucía González, Manuel Fco Moreno | ||
numPares xs = length (filter even (nub xs)) | numPares xs = length (filter even (nub xs)) | ||
</source> | </source> |
Revisión actual del 10:22 27 oct 2021
-- I1M 2021-22: Rel_1.hs (24 de septiembre de 2021)
-- Definiciones por composición sobre números, listas y booleanos.
-- Departamento de Ciencias de la Computación e I.A.
-- Universidad de Sevilla
-- =====================================================================
import Data.List
-- ---------------------------------------------------------------------
-- Introducción --
-- ---------------------------------------------------------------------
-- En esta relación se plantean ejercicios con definiciones de funciones
-- por composición sobre números, listas y booleanos.
--
-- Para solucionar los ejercicios puede ser útil el manual de
-- funciones de Haskell que se encuentra en http://bit.ly/1uJZiqi y su
-- resumen en http://bit.ly/ZwSMHO
-- ---------------------------------------------------------------------
-- 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
-- ---------------------------------------------------------------------
-- Manuel Alcaide García, Lucía Hernández, Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Irene Ortega Moncayo, Laura Arango, Ana Sosa Caballero, Adolfo Sagrera Vivancos, Pelayo INfante Pérez, Sara Cerro Torres, Manuel Fco Moreno, Virginia Sánchez, Ángela Pérez Ríos, Carmen Blanco, José Manuel Garcia, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández, Daniel Kock Cabrera, Ana Sánchez Martín
media3 x y z = (x+y+z)/3
-- Antonio López García, César Fornis Catalán
media3 x y z = (sum [x,y,z])/3
-- Francisco José Espinosa
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
-- ---------------------------------------------------------------------
-- Adriana Gordillo Melero, Nicolás Rodríguez Ruiz, Lucía Hernández, Manuel Fco Moreno, Laura Arango, Ana Sosa Caballero, Sara Cerro Torres, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Víctor Fernández, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín
sumamonedas a b c d e = a+b*2+c*5+d*10+e*20
-- Antonio López García, Irene Ortega, César Fornis Catalán, Virginia Sánchez, Elsa Domínguez
sumaMonedas a b c d e = sum [a, b*2, c*5, d*10, e*20]
-- Adolfo Sagrera Vivancos, Lucía González, Pelayo Infante, Francisco José Espinosa, Carmen Blanco, José Manuel García
sumaMonedas a b c d e = a*1+b*2+c*5+d*10+e*20
-- Elena Delgado
sumaMonedas a b c d e = a+b*2+c*5+d*10+e*20
-- ---------------------------------------------------------------------
-- 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.
-- ---------------------------------------------------------------------
-- Adriana Gordillo Melero, Lucía Hernández, Nicolás Rodríguez Ruiz, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Pelayo Infante, Sara Cerro Torres, José Manuel García, Manuel Fco Moreno, Rafael Gómez, Ángela Pérez Ríos, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández,Daniel Kock Cabrera, Ana Sánchez Martín
volumenEsfera r = (4/3)*pi*r^3
-- Adolfo Sagrera Vivancos, Carmen Blanco
volumenEsfera r =(4/3)*(pi*r^3)
-- Irene Ortega
volumenEsfera r = pi*(r^3)*4/3
-- Francisco José Espinosa
-- César Fornis Catalán, Virginia Sánchez
volumenEsfera r = (4*pi*r^3)/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
-- ---------------------------------------------------------------------
--Lucía Hernández, Adriana Gordillo Melero, Antonio López García, Lucía González, Nicolás Rodríguez Ruiz, Sara Cerro Torres, Ángela Pérez Ríos, Elsa Domínguez,Daniel Kock Cabrera
areaDeCoronaCircular r1 r2 = pi*r2^2 - pi*r1^2
--Álvaro Cano, Ana Sosa Caballero, Irene Ortega, César Fornis Catalán,Manuel Fco Moreno, José Manuel García, Rafael Gómez, Iván García Rodríguez, Víctor Fernández,Ana Sánchez Martín
areaDeCoronaCircular r1 r2 = pi*(r2^2-r1^2)
--Laura Arango
areaDeCoronaCircular r1 r2 = areaCirculo r2 - areaCirculo r1
where areaCirculo r = pi*r^2
--Adolfo Sagrera Vivancos, Pelayo Infante , Francisco José Espinosa, Jaime Chaves Navarro
areaDeCoronaCircular r1 r2 = (pi*r2^2)-(pi*r1^2)
-- Carmen Blanco
-- Virginia Sánchez, Elena Delgado
areaDeCoronaCircular r1 r2 = (pi*(r2)^2) - (pi*(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
-- ---------------------------------------------------------------------
--Lucía Hernández, Adriana Gordillo Melero, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía González, Adolfo Sagrera Vivancos Francisco José Espinosa, Lucía González, Nicolás Rodríguez Ruiz, Irene Ortega, Carmen Blanco, Manuel Fco Moreno, César Fornis Catalán, Ángela Pérez Ríos, Rafael Gómez, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Elena Delgado, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín
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.
-- ---------------------------------------------------------------------
--Lucía Hernández, Laura Arango, Adriana Gordillo, Irene Ortega, Nicolás Rodríguez Ruiz, Manuel Fco Moreno, Rafael Gómez, Ángela Pérez Ríos, Jaime Chaves Navarro, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera
maxTres x y z = max(max x y)(z)
-- Ana Sosa Caballero, Adolfo Sagrera Vivancos, Iván García Rodríguez
maxTres x y z = max x t
where t = max y z
-- Antonio López García, Lucía González, Carmen Blanco, Elena Delgado
maxTres x y z = maximum [x,y,z]
--César Fornis Catalán, José Manuel García, Elsa Domínguez
maxTres x y z = max (max x y) z
-- Ana Sánchez Martín
maxTres x y z = max x (max y z)
-- ---------------------------------------------------------------------
-- Ejercicio 7. Definir la función rota1 tal que (rota1 xs) es la lista
-- obtenida poniendo el primer elemento de xs al final de la lista. Por
-- ejemplo,
-- rota1 [3,2,5,7] == [2,5,7,3]
-- ---------------------------------------------------------------------
--Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero , Irene Ortega, Lucía González, Nicolás Rodríguez Ruiz, Carmen Blanco, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Ángela Pérez Ríos, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera
rota1 xs = tail xs ++ [head xs]
-- Antonio López García, Ana Sánchez Martín
rota1 xs = drop 1 xs ++ take 1 xs
-- ---------------------------------------------------------------------
-- Ejercicio 8. Definir la función rota tal que (rota n xs) es la lista
-- obtenida poniendo los n primeros elementos de xs al final de la
-- lista. Por ejemplo,
-- rota 1 [3,2,5,7] == [2,5,7,3]
-- rota 2 [3,2,5,7] == [5,7,3,2]
-- rota 3 [3,2,5,7] == [7,3,2,5]
-- ---------------------------------------------------------------------
-- Lucía Hernández, Laura Arango, Adriana Gordillo, Ana Sosa Caballero, Antonio López García, Irene Ortega, Lucía González, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Manuel Fco Moreno, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín
rota n xs = drop n xs ++ take n xs
-- Fernando Ruiz (mejora para conseguir rotar el vector un número mayor de veces que de elementos en el vector)
rota n xs = drop (mod n (length xs)) xs ++ take (mod n (length xs)) xs
-- ---------------------------------------------------------------------
-- Ejercicio 9. Definir la función rango tal que (rango xs) es la
-- lista formada por el menor y mayor elemento de xs.
-- rango [3,2,7,5] == [2,7]
-- Indicación: Se pueden usar minimum y maximum.
-- ---------------------------------------------------------------------
-- Lucía Hernández, Laura Arango, Irene Ortega, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Rafael Gómez, Jaime Chaves Navarro, Sara Cerro Torres, Adriana Gordillo, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín
rango xs = [minimum xs] ++ [maximum xs]
-- Ana Sosa Caballero, Antonio López García, Iván García Rodríguez
rango xs = [minimum xs, maximum xs]
-- ---------------------------------------------------------------------
-- Ejercicio 10. Definir la función palindromo tal que (palindromo xs) se
-- verifica si xs es un palíndromo; es decir, es lo mismo leer xs de
-- izquierda a derecha que de derecha a izquierda. Por ejemplo,
-- palindromo [3,2,5,2,3] == True
-- palindromo [3,2,5,6,2,3] == False
-- ---------------------------------------------------------------------
--Álvaro Cano, José Manuel Sánchez Parra, Laura Arango, Ana Sosa Caballero, Antonio López García, Lucía Hernández, Manuel Alcaide, Lucía González , Irene Ortega, José Manuel García ,Rafael Gómez, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Jaime Chaves Navarro, Adriana Gordillo, Ángela Pérez Ríos, Elsa Domínguez, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín
palindromo xs = xs == reverse xs
--Iván García Rodríguez
palindromo xs = if xs==reverse xs
then "True"
else "False"
-- ---------------------------------------------------------------------
-- Ejercicio 11. Definir la función interior tal que (interior xs) es la
-- lista obtenida eliminando los extremos de la lista xs. Por ejemplo,
-- interior [2,5,3,7,3] == [5,3,7]
-- interior [2..7] == [3,4,5,6]
-- ---------------------------------------------------------------------
--Lucía Hernández, Ana Sosa Caballero, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, Adriana Gordillo, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres
interior xs = tail (init xs)
--Laura Arango
interior xs = drop 1 (init xs)
--Fernando Ruiz, Antonio López García, Irene Ortega, Jaime Chaves Navarro, Iván García Rodríguez, Elsa Domínguez,Daniel Kock Cabrera, Ana Sánchez Martín
interior xs = init (tail xs)
--Manuel Alcaide García
interior xs = init (drop 1 xs)
--José Manuel García
interior xs = reverse (take ((length js)-1) js)
where js = reverse (take ((length xs)-1) xs)
--Nicolás Rodríguez Ruiz
interior xs = reverse(tail(reverse(tail xs)))
-- ---------------------------------------------------------------------
-- Ejercicio 12. Definir la función finales tal que (finales n xs) es la
-- lista formada por los n finales elementos de xs. Por ejemplo,
-- finales 3 [2,5,4,7,9,6] == [7,9,6]
-- ---------------------------------------------------------------------
--Álvaro Cano, Víctor Fernández, Ana Sánchez Martín
finales n xs = drop n xs
-- Lucía Hernández, Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz
finales n xs = reverse (take n (reverse xs))
--Laura Arango, Ana Sosa Caballero
finales n xs = drop m xs
where m = length xs - n
-- Antonio López García, Fernando Ruiz Mazo, Pelayo Infante, Manuel Fco Moreno, Manuel Alcaide García, Irene Ortega, Adriana Gordillo, Iván García Rodríguez, Elsa Domínguez, Lucía González, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
finales n xs = drop (length xs - n) xs
-- ---------------------------------------------------------------------
-- Ejercicio 13. Definir la función segmento tal que (segmento m n xs) es
-- la lista de los elementos de xs comprendidos entre las posiciones m y
-- n. Por ejemplo,
-- segmento 3 4 [3,4,1,2,7,9,0] == [1,2]
-- segmento 3 5 [3,4,1,2,7,9,0] == [1,2,7]
-- segmento 5 3 [3,4,1,2,7,9,0] == []
-- ---------------------------------------------------------------------
--Laura Arango, Adriana Gordillo, Elsa Domínguez, Víctor Fernández
segmento m n xs = drop (m-1) (reverse (drop a ys))
where a = length xs - n
ys = reverse xs
-- Ana Sosa Caballero, Antonio López García, Lucía González, Manuel Fco Moreno, Iván García Rodríguez, Adolfo Sagrera Vivancos, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín
segmento m n xs = drop (m-1) (take n xs)
-- Fernando Ruiz
segmento m n xs = reverse (drop ((length xs)-n+m-2)(reverse (drop (m-1) xs)))
--Lucía Hernández, José Manuel García
segmento m n xs = take (n-m+1)(drop(m-1) xs)
--Manuel Alcaide García, Irene Ortega, Nicolás Rodríguez Ruiz
segmento m n xs = take (n-(m-1)) (drop (m-1) xs)
--Pelayo Infante,]
-- ---------------------------------------------------------------------
--Víctor Fernández
extremos n xs = take n xs ++ drop h xs
where h = length xs - n
--Laura Arango
extremos n xs = take n xs ++ finales n XS
-- Ana Sosa Caballero, Lucía Hernández, Fernando Ruiz, Adriana Gordillo, Manuel Fco Moreno,Adolfo Sagrera Vivancos, Nicolás Rodríguez Ruiz, Lucía González,Daniel Kock Cabrera, Ana Sánchez Martín
extremos n xs = take n xs ++ reverse (take n (reverse xs))
-- Irene Ortega, Pelayo Infante, Iván García Rodríguez, Elsa Domínguez
extremos n xs = take n xs ++ drop (length xs-n) xs
-- ---------------------------------------------------------------------
-- Ejercicio 15. Definir la función mediano tal que (mediano x y z) es el
-- número mediano de los tres números x, y y z. Por ejemplo,
-- mediano 3 2 5 == 3
-- mediano 2 4 5 == 4
-- mediano 2 6 5 == 5
-- mediano 2 6 6 == 6
-- Indicación: Usar maximum y minimum.
-- ---------------------------------------------------------------------
--Laura Arango, José Manuel García
mediano x y z = max x (min y z) (Contraejemplo : mediano 8 10 3)
-- Lucía Hernández
mediano x y z = minimum [maximum [x,y], z] (Contraejemplo : mediano 8 10 3)
-- Antonio López García
mediano x y z = maximum [minimum [x,y], minimum[x,z], minimum[y,z]]
-- Fernando Ruiz Mazo, Irene Ortega
mediano x y z = minimum ([maximum [x,y]] ++ [maximum [y,z]] ++ [maximum [x,z]])
-- Adriana Gordillo, Elsa Domínguez, Adolfo Sagrera Vivancos, Manuel Fco Moreno, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
mediano x y z = (x+y+z)-maximum[x,y,z]-minimum[x,y,z]
-- Lucía Hernández
mediano x y z = maximum [minimum [x,y], minimum [maximum[x,y],z]]
-- Iván García Rodríguez
mediano x y z = max x a where a=min y z
-- Ana Sánchez Martín
mediano x y z = minimum [maximum[x,y], maximum[y,z], maximum[x,z]]
-- ---------------------------------------------------------------------
-- Ejercicio 16. 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 4 4 4 == True
-- tresIguales 4 3 4 == False
-- ---------------------------------------------------------------------
--Laura Arango, Ana Sosa Caballero, Lucía Hernández, Irene Ortega, Adriana Gordillo, Manuel Fco Moreno, Elsa Domínguez, Nicolás Rodríguez Ruiz, Ángela Pérez Ríos, Víctor Fernández, Sara Cerro Torres,Daniel Kock Cabrera, Ana Sánchez Martín
tresIguales x y z = x==y && x==z
--Pelayo Infante
tresIguales x y z = x^3==x*y*z
--Iván García Rodríguez
tresIguales x y z = if x==y && y==z
then "True"
else "False"
-- Adolfo Sagrera Vivancos, Lucía González
tresIguales x y z = x==y && y==z
--José Manuel García
tresIguales x y z = if x == y && x == z then True else False
-- ---------------------------------------------------------------------
-- Ejercicio 17. 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 3 5 2 == True
-- tresDiferentes 3 5 3 == False
-- ---------------------------------------------------------------------
--Laura Arango, Lucía Hernández, Adriana Gordillo, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
tresDiferentes x y z = x/=y && x/=z
-- Ana Sosa Caballero
tresDiferentes x y z = and [x/=y, y/=z, x/=z]
--Irene Ortega, Ana Sánchez Martín
tresDiferentes x y z = x/=y && x/=z && y/=x
-- Adolfo Sagrera Vivancos, Lucía González, Manuel Fco Moreno
tresDiferentes x y z = x/=y && y/=z && x/=z
--Nicolás Rodríguez Ruiz
tresDiferentes x y z = not(x==y || x==z || z==y)
--José Manuel García
tresDiferentes x y z = if x /= y && x /= z && y /= z then True else False
-- ---------------------------------------------------------------------
-- Ejercicio 18. 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 5 5 5 5 == True
-- cuatroIguales 5 5 4 5 == False
-- Indicación: Usar la función tresIguales.
-- ---------------------------------------------------------------------
--Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González, Ángela Pérez Ríos,Daniel Kock Cabrera
cuatroIguales x y z u = tresIguales x y z == True && x==u
-- Lucía Hernández, Nicolás Rodríguez Ruiz, Adolfo Sagrera Vivancos, Manuel Fco Moreno, Adriana Gordillo, Irene Ortega, Sara Cerro Torres, Ana Sánchez Martín
cuatroIguales x y z u = tresIguales x y z && x==u
-- José Manuel García
cuatroIguales x y z u = x==y && y==z && z==u
-- Alereyvil
cuatroiguales' x y z u = if x==y && y==z && z==u
then True
else False
--Víctor Fernández
cuatroIguales x y z u = and [tresIguales x y z, u == x]
-- ---------------------------------------------------------------------
-- Ejercicios para trabajar con Data.List. Ver:
-- http://www.cs.us.es/~jalonso/cursos/i1m-19/doc/Funciones_basicas.html
-- ---------------------------------------------------------------------
-- ---------------------------------------------------------------------
-- Ejercicio 19. Definir la función unicos, tal que (unicos xs)
-- devuelva la cantidad de elementos únicos que hay en la lista xs.
-- Por ejemplo,
-- unicos [1,4,8,2,1,4,6,1] == 5
-- unicos [10,9,8,10,5,10] == 4
-- unicos [10,9,8] == 3
-- ---------------------------------------------------------------------
--Laura Arango, Lucía Hernández, Adriana Gordillo, Elsa Domínguez, Lucía González, Manuel Fco Moreno, Adolfo Sagrera Vivancos, José Manuel García, Irene Ortega, Víctor Fernández, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín
unicos xs = length (nub xs)
-- Ana Sosa Caballero
unicos xs = length(group(sort xs))
-- ---------------------------------------------------------------------
-- Ejercicio 20. Definir la función segundoMinimo, tal que (segundoMinimo xs)
-- devuelve el segundo elemento más pequeńo de la lista xs, obviando
-- repeticiones. Por ejemplo,
-- segundoMinimo [6,9,2,4] == 4
-- segundoMinimo [0.5,1.2,0.5,4.4,0.5] == 1.2
-- ---------------------------------------------------------------------
--Laura Arango, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
segundoMinimo xs = sort (nub xs) !! 1
--Lucía Hernández, Irene Ortega, Ana Sánchez Martín
segundoMinimo xs = minimum (delete(minimum (xs))(nub xs))
-- Adriana Gordillo
segundoMinimo xs = minimum (filter (>minimum xs) xs)
-- Elsa Domínguez
segundoMinimo xs = head (tail(nub (sort xs)))
-- Manuel Fco Moreno
segundoMinimo xs = last (take 2 (sort(nub xs)))
--Pelayo Infante, Lucía González
segundoMinimo xs = head ( drop 1 (sort (nub xs)))
-- Adolfo Sagrera Vivancos
segundoMinimo xs = minimum (drop 1(sort(nub xs)))
--José Manuel García
segundoMinimo xs = minimum (delete (minimum js) js)
where js = nub xs
--Víctor Fernández
segundoMinimo xs = (drop 1(take 2 (sort (nub xs))))
-- ---------------------------------------------------------------------
-- Ejercicio 21. Definir la función kMaximo, tal que (kMaximo n xs)
-- devuelve el k-máximo elemento de xs (es decir, el que está en la
-- posición k de valores más altos), obviando repeticiones. Por ejemplo,
-- kMaximo 2 [6,9,2,4] == 6
-- kMaximo 3 [10,9,8,10,5] == 8
-- ---------------------------------------------------------------------
--Laura Arango, Ana Sosa Caballero, Elsa Domínguez, Lucía González, Manuel Fco Moreno, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
kMaximo k xs = reverse (sort (nub xs)) !! (k-1)
--José Manuel Sánchez Parra
kMaximo k xs = maximum(take k xs)
--Lucía Hernández, Ana Sánchez Martín
kMaximo k xs = head(drop(k-1) (reverse(sort (nub xs))))
--Antonio Medinilla Garófano
quitarMaximo xs = delete (maximum xs) xs
kMaximo k xs = maximum ((iterate quitarMaximo (nub xs)) !! (k-1))
--Fernando Ruiz Mazo
kMaximoRecursivo k xs = if k==1 then maximum(nub(xs)) else kMaximoRecursivo (k-1) (init(sort(nub xs)))
-- Adolfo Sagrera Vivancos
kMaximo k xs = maximum(drop (k-1)(reverse(sort(nub xs))))
--César Fornis Catalán
kMaximo k xs = head(drop (k-1) (reverse(sort(nub xs))))
--José Manuel García
kMaximo k xs = head (js \\ (take (k-1) js))
where js = reverse (sort (nub xs))
--Nicolás Rodríguez Ruiz
kMaximo k xs = sort(nub xs) !! ((length (nub(xs))) - k)
-- Alereyvil
kMaximo' k xs = take k ys
where ys == sort xs
-- ---------------------------------------------------------------------
-- Ejercicio 22. Definir la función numPermut, tal que (numPermut xs)
-- devuelve el número de permutaciones sin repetición posibles con los
-- elementos de la lista xs. Por ejemplo,
-- numPermut [6,2,4] == 6
-- numPermut [10,8,10,5] == 24
-- ---------------------------------------------------------------------
--Laura Arango, Ana Sosa Caballero, Manuel Fco Moreno, Lucía Hernández, José Manuel Sánchez Parra, Elsa Domínguez, Lucía González, Adolfo Sagrera Vivancos, Irene Ortega, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera, Ana Sánchez Martín
numPermut xs = length (permutations xs)
--Nicolás Rodríguez Ruiz, José Manuel García
numPermut xs = product [1..(length xs)]
--César Fornis Catalán
numPermut xs = length (permutations(nub xs))
-- ---------------------------------------------------------------------
-- Ejercicio 23 Definir la función numPares, tal que (numPares xs)
-- devuelva cuantos números pares en total (sin repeticiones) aparecen
-- en la lista xs. Por ejemplo,
-- numPares [1,4,8,2,1,4,6,1] == 4
-- numPares [10,9,8,10,5,10] == 2
-- numPares [10,9,8] == 2
-- Indicación: puede ser útil la función partitions
-- ---------------------------------------------------------------------
--Laura Arango, José Manuel Sánchez Parra, Elsa Domínguez, Sara Cerro Torres, Ángela Pérez Ríos,Daniel Kock Cabrera
numPares xs = length (nub (filter even xs))
-- Ana Sosa Caballero
numPares xs = length(group (sort (filter even xs)))
--Lucía Hernández, Adolfo Sagrera Vivancos, José Manuel García, Ana Sánchez Martín
numPares xs = length(fst(partition even (nub xs)))
--Lucía González, Manuel Fco Moreno
numPares xs = length (filter even (nub xs))