PFH: La semana en Exercitium (28 de octubre de 2022)

Esta semana he publicado en Exercitium las soluciones de los siguientes problemas:

A continuación se muestran las soluciones.

1. Base de datos de actividades

Las bases de datos sobre actividades de personas pueden representarse mediante listas de elementos de la forma (a,b,c,d), donde a es el nombre de la persona, b su actividad, c su fecha de nacimiento y d la de su fallecimiento. Un ejemplo es la siguiente que usaremos a lo largo de este ejercicio,

Definir las funciones

tales que

  • nombres bd es la lista de los nombres de las personas de la base de datos bd. Por ejemplo,

  • musicos bd es la lista de los nombres de los músicos de la base de datos bd. Por ejemplo,

  • seleccion bd m es la lista de los nombres de las personas de la base de datos bd cuya actividad es m. Por ejemplo,

  • musicos' bd es la lista de los nombres de los músicos de la base de datos bd. Por ejemplo,

  • vivas bd a es la lista de los nombres de las personas de la base de datos bd que estaban vivas en el año a. Por ejemplo,

Soluciones en Haskell

Soluciones en Python

2. Potencia entera

Definir la función

tal que potencia x n es x elevado al número natural n. Por ejemplo,

Soluciones en Haskell

Soluciones en Python

3. Algoritmo de Euclides del mcd

Dados dos números naturales, a y b, es posible calcular su máximo común divisor mediante el Algoritmo de Euclides. Este algoritmo se puede resumir en la siguiente fórmula:

Definir la función

tal que mcd a b es el máximo común divisor de a y b calculado mediante el algoritmo de Euclides. Por ejemplo,

Comprobar con QuickCheck que el máximo común divisor de dos números a y b (ambos mayores que 0) es siempre mayor o igual que 1 y además es menor o igual que el menor de los números a y b.

Soluciones en Haskell

Soluciones en Python

4. Dígitos de un número

Definir la función

tal que digitos n es la lista de los dígitos del número n. Por ejemplo,

Soluciones en Haskell

Soluciones en Python

5. Suma de los dígitos de un número

Definir la función

tal que sumaDigitos n es la suma de los dígitos de n. Por ejemplo,

Soluciones en Haskell

Soluciones en Python