Menu Close

Categoría: I1M2017

I1M2017: Manejo de ficheros en Haskell

En la primera parte de la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado el manejo de ficheros.

En la segunda parte se ha comentado cómo trabajar con Kattis, que es un juez en línea para problemas de programación que contiene una colección de problemas.

En la Guía de uso de Kattis se explica el procedimiento de trabajo con Kattis.

Los apuntes correspondientes a la primera parte de la clase son

I1M2017: Programas interactivos en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado el tema 13 sobre programas interactivos.

Se ha empezado observando un procedimiento que pide que se escriba una cadena y devuelve su longitud:

longitudCadena :: IO ()
longitudCadena = do
  putStr "Escribe una cadena: "
  xs <- getLine
  putStr "La cadena tiene "
  putStr (show (length xs))
  putStrLn " caracteres"

A continuación se han estudiado los elementos implicados en el procedimiento anterior: el tipo de las acciones de entrada/salida (IO), las acciones básicas (getChar, putChar y return), la secuenciación de acciones con do y la definición de algunos procedimientos del preludio (getLine, putStr, putStrLn, y sequence_).

Como aplicación se han estudiado un programa para adivinar un número en sus dos versiones: cuando la máquina tiene que adivinar el número pensado por el humano y cuando es el humano el que tiene que adivinar el número generado aleatoriamente por la máquina.

Los apuntes correspondientes a la clase son las primeras secciones del tema 6:

I1M2017: Evaluación perezosa en Haskell

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado la evaluación perezosa en Haskell. Se han visto la estrategias de evaluación perezosa e impaciente, se han comparado respecto de la terminación y el número de pasos necesarios en las computaciones, se ha aplicado a la computación con estructuras infinitas y se han visto casos en los que se aumenta la eficiencia con evaluación estricta.

Como ejemplo, se ha estudiado el cálculo de los números primos mediante la criba de Erastótenes.

Los apuntes correspondientes a la clase son

I1M2017: Programa en Haskell para reconocer tautologías

En la clase de hoy de Informática de 1º del Grado en Matemáticas se ha estudiado cómo construir un programa para determinar si una fórmula es una tautología.

Para ello se consideran las siguientes fases:

  1. definir un tipo de dato algebraico para las fórmulas proposicionales,
  2. definir un tipo de dato para las interpretaciones,
  3. definir una función para calcular los valores de las fórmulas en las interpretaciones
  4. definir una función para generar todas las posibles interpretaciones de una fórmula y
  5. definir una función que para decidir si una fórmula es tautología (es decir, su valor es verdadero en todas sus interpretaciones).

Los apuntes correspondientes a la clase son

El código correspondiente es