Publicado el 7 de Abril del 2018
862 visualizaciones desde el 7 de Abril del 2018
299,8 KB
162 paginas
Creado hace 12a (18/02/2012)
Ejercicios de “Informática de 1ode
Matemáticas” (2011–12)
José A. Alonso Jiménez
Grupo de Lógica Computacional
Dpto. de Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
Sevilla, 1 de Octubre de 2011 (Versión de 18 de febrero de 2012)
2
Esta obra está bajo una licencia Reconocimiento–NoComercial–CompartirIgual 2.5 Spain
de Creative Commons.
Se permite:
copiar, distribuir y comunicar públicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los créditos de la obra de la manera espe-
cificada por el autor.
No comercial. No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera
una obra derivada, sólo puede distribuir la obra generada bajo una licencia
idéntica a ésta.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licen-
cia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular
de los derechos de autor.
Esto es un resumen del texto legal (la licencia completa). Para ver una copia de esta
licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/es/ o envie una
carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Índice general
1 Definiciones elementales de funciones (1)
2 Definiciones elementales de funciones (2)
3 Definiciones por comprensión (1)
4 Definiciones por comprensión (2)
5 Definiciones por comprensión (3): El cifrado César
6 Definiciones por recursión
7 Definiciones por recursión y por comprensión (1)
8 Definiciones por recursión y por comprensión (2)
9 Definiciones sobre cadenas, orden superior y plegado
10 Definiciones por plegado
11 Codificación y transmisión de mensajes
12 Resolución de problemas matemáticos
13 Demostración de propiedades por inducción
14 El 2011 y los números primos
15 Listas infinitas
16 Ejercicios de exámenes del curso 2010-11
7
13
23
29
39
45
53
69
81
99
107
113
125
133
141
149
A Exámenes
155
A.1 Examen 1 (26 de Octubre de 2011) . . . . . . . . . . . . . . . . . . . . . . . . 155
A.2 Examen 2 (30 de Noviembre de 2011) . . . . . . . . . . . . . . . . . . . . . . 156
3
4
Índice general
A.3 Examen 3 (25 de Enero de 2012) . . . . . . . . . . . . . . . . . . . . . . . . . 158
Introducción
Este libro es una recopilación de las soluciones de ejercicios de la asignatura de
“Informática” (de 1o del Grado en Matemáticas) correspondientes al curso 2011–12.
El objetivo de los ejercicios es complementar la introducción a la programación
funcional y a la algorítmica con Haskell presentada en los temas del curso. Los apuntes
de los temas se encuentran en Temas de "Programación funcional1.
Los ejercicios sigue el orden de las relaciones de problemas propuestos durante el
curso y, resueltos de manera colaborativa, en la wiki del curso2.
1http://www.cs.us.es/~jalonso/cursos/i1m-11/temas/2011-12-IM-temas-PF.pdf
2http://www.glc.us.es/~jalonso/ejerciciosI1M2011G1
5
6
Índice general
Relación 1
Definiciones elementales de funciones
(1)
-- ---------------------------------------------------------------------
-- Introducción
--
-- ---------------------------------------------------------------------
http://www.cs.us.es/~jalonso/cursos/i1m-11/doc/resumen_Haskell.pdf
http://www.cs.us.es/~jalonso/cursos/i1m-11/temas/tema-2t.pdf
-- En esta relación se plantean ejercicios con definiciones
-- elementales (no recursivas) de funciones para ejercitar la
-- introducción a Haskell presentada en el tema 2 y cuyas
-- transparencias se encuentran en
--
-- Para solucionar los ejercicios puede ser útil el "Resumen de
-- funciones de Haskell" que se encuentra en
--
-- En concreto, se estudian funciones para calcular
-- * la media de 3 números,
-- * la suma de euros de una colección de monedas,
-- * el volumen de la esfera,
-- * el área de una corona circular,
-- * la intercalación de pares,
-- * la última cifra de un número,
-- * la rotación de listas,
-- * el rango de una lista,
-- * el reconocimiento de palíndromos,
-- * la igualdad y diferencia de 3 elementos,
-- * la igualdad de 4 elementos,
-- * el máximo de 3 elementos,
7
8
Relación 1. Definiciones elementales de funciones (1)
-- * la división segura y
-- * el área de un triángulo mediante la fórmula de Herón.
-- ---------------------------------------------------------------------
-- 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
media3 (-1) 0 7
media3 (-3) 0 3
== 4.0
==
2.0
0.0
==
media3 x y z = (x+y+z)/3
-- ---------------------------------------------------------------------
-- Ejercicio 2. Definir la función sumaMonedas tal que
-- (sumaMonedas a b c d e) es la suma de los euros correspondientes a
-- a monedas de 1 euro, b de 2 euros, c de 5 euros, d 10 euros y
-- e de 20 euros. Por ejemplo,
--
--
--
-- ---------------------------------------------------------------------
sumaMonedas 0 0 0 0 1
sumaMonedas 0 0 8 0 3
sumaMonedas 1 1 1 1 1
==
20
== 100
==
38
sumaMonedas a b c d e = 1*a+2*b+5*c+10*d+20*e
-- ---------------------------------------------------------------------
-- Ejercicio 3. Definir la función volumenEsfera tal que
-- (volumenEsfera r) es el volumen de la esfera de radio r. Por ejemplo,
--
-- Indicación: Usar la constante pi.
-- ---------------------------------------------------------------------
4188.790204786391
volumenEsfera 10
==
volumenEsfera r = (4/3)*pi*r^3
-- ---------------------------------------------------------------------
-- Ejercicio 4. Definir la función areaDeCoronaCircular tal que
-- (areaDeCoronaCircular r1 r2) es el área de una corona circular de
-- radio interior r1 y radio exterior r2. Por ejemplo,
--
--
areaDeCoronaCircular 1 2 == 9.42477796076938
areaDeCoronaCircular 2 5 == 65.97344572538566
areaDeCoronaCircular 3 5 == 50.26548245743669
--
-- ---------------------------------------------------------------------
areaDeCoronaCircular r1 r2 = pi*(r2^2 -r1^2)
9
-- ---------------------------------------------------------------------
-- Ejercicio 5. Definir la función intercala que reciba dos listas xs e
-- ys de dos elementos cada una, y devuelva una lista de cuatro
-- elementos, construida intercalando los elementos de xs e ys. Por
-- ejemplo,
--
-- ---------------------------------------------------------------------
intercala [1,4] [3,2]
[1,3,4,2]
==
intercala [x1,x2] [y1,y2] = [x1,y1,x2,y2]
-- ---------------------------------------------------------------------
-- Ejercicio 6. Definir la función ultimaCifra tal que (ultimaCifra x)
-- es la última cifra del nímero x. Por ejemplo,
--
-- ---------------------------------------------------------------------
ultimaCifra 325
==
5
ultimaCifra x = rem x 10
-- ---------------------------------------------------------------------
-- 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]
==
rota1 xs = tail xs ++ [head 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]
rota 2 [3,2,5,7]
--
--
rota 3 [3,2,5,7]
-- ---------------------------------------------------------------------
[2,5,7,3]
[5,7,3,2]
[7,3,2,5]
==
==
==
10
Relación 1. Definiciones elementales de funciones (1)
rota n xs = drop n xs ++ take n xs
-- ---------------------------------------------------------------------
-- Ejercicio 9. Definir la función rango tal que (rango xs) es la
-- lista formada por el menor y mayor elemento de xs.
--
-- Indicación: Se pueden usar minimum y maximum.
-- ---------------------------------------------------------------------
rango [3,2,7,5]
[2,7]
==
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]
palindromo [3,2,5,6,2,3]
True
False
==
==
palindromo xs = xs == reverse xs
-- ---------------------------------------------------------------------
-- Ejercicio 11. 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
tresIguales 4 3 4
True
False
==
==
tresIguales x y z = x == y && y == z
-- ---------------------------------------------------------------------
-- Ejercicio 12. 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
--
tresDiferentes 3 5 3
-- ---------------------------------------------------------------------
True
False
==
==
tresDiferentes x y z = x /= y && x /= z && y /= z
11
-- ---------------------------------------------------------------------
-- Ejercicio 13. 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,
--
--
-- Indicación: Usar la función tresIguales.
-- ---------------------------------------------------------------------
cuatroIguales 5 5 5 5
cuatroIguales 5 5 4 5
True
False
==
==
cuatroIguales x y z u = x == y && tresIguales y z u
-- ------------------------------------------------
Comentarios de: Ejercicios de Informática de 1 de Matemáticas (0)
No hay comentarios