Raíces de la ecuación de segundo grado

Definir la función

tal que (raices a b c) es la lista de las raíces reales de la ecuación ax^2 + bx + c = 0. Por ejemplo,

Comprobar con QuickCheck que la suma de las raíces de la ecuación ax^2 + bx + c = 0 (con a no nulo) es \dfrac{-b}{a} y su producto es \dfrac{c}{a}.

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Número de raíces de la ecuación de segundo grado

Definir la función

tal que (numeroDeRaices a b c) es el número de raíces reales de la ecuación ax^2 + bx + c = 0. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • En Haskell se usa un entorno local con where d = b^2-4*a*c y en Python se usa la asignación d = b ** 2 - 4 * a * c.

Mayor número con dos dígitos dados

Definir la función

tal que (numeroMayor x y) es el mayor número de dos cifras que puede construirse con los dígitos x e y. Por ejemplo,

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Permutación cíclica

Definir la función

tal que (ciclo xs) es la lista obtenida permutando cíclicamente los elementos de la lista xs, pasando el último elemento al principio de la lista. Por ejemplo,

Comprobar que la longitud es un invariante de la función ciclo; es decir, la longitud de (ciclo xs) es la misma que la de xs.

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub


Soluciones en Python

El código se encuentra en GitHub.

Distancia entre dos puntos

Definir la función

tal que (distancia p1 p2) es la distancia entre los puntos p1 y p2. Por ejemplo,

Comprobar con QuickCheck que se verifica la propiedad triangular de la distancia; es decir, dados tres puntos p1, p2 y p3, la distancia de p1 a p3 es menor o igual que la suma de la distancia de p1 a p2 y la de p2 a p3.

Soluciones

A continuación se muestran las soluciones en Haskell y las soluciones en Python.


Soluciones en Haskell

El código se encuentra en GitHub.


Soluciones en Python

El código se encuentra en GitHub.

Comentarios

  • La raíz cuadrada de x se escribe
    • en Haskell, como sqrt x y
    • en Python, como sqrt(x) y hay que importarla del módulo math.