Menu Close

Etiqueta: I1M2011

I1M2011: El TAD de los polinomios en Haskell (2)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos continuado el estudio del tipo abstracto de los polinomios y su implementación en Haskell que comenzamos en la clase anterior. Concretamente, hemos estudiado la implementaciones en Haskell del TAD de los polinomios mediantes listas dispersas y mediante listas densas.

Las transparencias usadas en la clase son las páginas 16-31 del tema 21

I1M2011: Libro de ejercicios resueltos de programación en Haskell (v. 19-Mar-12)

A lo largo del curso iré actualizando un libro de ejercicios resueltos de programación con Haskell con las relaciones de ejercicios del curso de Informática (de 1º del Grado en Matemáticas)

En la versión actual contiene las soluciones de las 23 primeras relaciones y los 4 primeros exámenes:

  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.
  17. Combinatoria.
  18. Tipos de datos algebraicos.
  19. Tipos de datos algebraicos: árboles binarios.
  20. Tipos de datos algebraicos: fórmulas proposicionales.
  21. Tipos de datos algebraicos: Modelización de juego de cartas.
  22. Cálculo numérico.
  23. Ecuación con factoriales.
  24. Exámenes:
    • Examen 1 (26 de Octubre de 2011).
    • Examen 2 (30 de Noviembre de 2011).
    • Examen 3 (25 de Enero de 2012).
    • Examen 4 (29 de Febrero de 2012).

I1M2011: El TAD de los polinomios en Haskell (1)

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos estudiado el tipo abstracto de los polinomios y su implementación en Haskell.

Comenzamos la clase analizando las posibles representaciones de los polinomios y, como consecuencia, establecer la signatura y las propiedades del TAD de los polinomios.

A continuación, estudiamos tres prosibles representaciones del TAD de los polinomios: mediante tipos algebraicos, mediantes listas dispersas y mediante listas densas.

Finalmente, estudiamos la implementación de los polinomios como tipo algebraico y dejamos las otras dos como ejercicio.

Las transparencias usadas en la clase son las páginas 1-15 del tema 21

I1M2011: Ejercicios de cálculo numérico en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se han explicado las soluciones de los ejercicios de la 22ª relación, en la que se definen funciones para resolver los siguientes problemas de cálculo numérico:

  • diferenciación numérica,
  • cálculo de la raíz cuadrada mediante el método de Herón,
  • cálculo de los ceros de una función por el método de Newton y
  • cálculo de funciones inversas.

Un aspecto a destacar desde el punto de vista de la programación es el uso de la abstracción de procedimientos.

Los ejercicios, y sus soluciones, se muestran a continuación.

I1M2011: Los problemas de las N reinas y de Hamming en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas hemos vistos dos aplicaciones de la programación funcional en Haskell: el problema de las reinas (consistente en colocar N reinas en un tablero de dimensiones N por N de forma que no se encuentren más de una en la misma línea: horizontal, vertical o diagonal) y el problema de Hamming (consistente definir una sucesión estrictamente creciente de números tales que el número 1 está en la sucesión y que, si x está en la sucesión, entonces 2*x, 3*x y 5*x también están).

El código del problema de las N reinas es

I1M2011: Simulación de un juego de cartas en Haskell

En la segunda parte de la clase de hoy de Informática de 1º del Grado en Matemáticas hemos comentado la resolución de ejercicios de la 21ª relación. En esta relación se estudia la modelización de un juego de cartas
como aplicación de los tipos de datos algebraicos. Además, se definen los generadores correspondientes para comprobar las propiedades con QuickCheck.

Las soluciones de los ejercicios de la relación son