License | Creative Commons |
---|---|
Maintainer | José A. Alonso |
Safe Haskell | Safe |
Language | Haskell2010 |
TAD (tipo abstracto de datos) de los polinomios
Este módulo contiene el código del TAD de los polinomios estudiado en el tema 21 del curso.
En los ejemplos se usarán los siguientes polinomios:
ejPol1, ejPol2, ejPol3:: Polinomio Int ejPol1 = consPol 4 3 (consPol 2 (-5) (consPol 0 3 polCero)) ejPol2 = consPol 5 1 (consPol 2 5 (consPol 1 4 polCero)) ejPol3 = consPol 4 6 (consPol 1 2 polCero) ejPol5, ejPol6, ejPol7:: Polinomio Float ejPol5 = consPol 4 3 (consPol 2 (-5) (consPol 0 3 polCero)) ejPol6 = consPol 5 1 (consPol 2 5 (consPol 1 4 polCero)) ejPol7 = consPol 1 2 (consPol 4 6 polCero)
Su escritura es
ejPol1 == 3*x^4 + -5*x^2 + 3 ejPol2 == x^5 + 5*x^2 + 4*x ejPol3 == 6*x^4 + 2*x ejPol5 == 3.0*x^4 + -5.0*x^2 + 3.0 ejPol6 == x^5 + 5.0*x^2 + 4.0*x ejPol7 == 6.0*x^4 + 2.0*x
Documentation
Tipo de dato de polinomios.
esPolCero :: Polinomio a -> Bool Source
(esPolCero p) se verifica si p es el polinomio cero. Por ejemplo,
esPolCero polCero == True esPolCero ejPol1 == False
consPol :: (Num a, Eq a) => Int -> a -> Polinomio a -> Polinomio a Source
(consPol n b p) es el polinomio bx^n+p. Por ejemplo,
ejPol2 == x^5 + 5*x^2 + 4*x consPol 3 0 ejPol2 == x^5 + 5*x^2 + 4*x consPol 3 2 polCero == 2*x^3 consPol 6 7 ejPol2 == 7*x^6 + x^5 + 5*x^2 + 4*x consPol 4 7 ejPol2 == x^5 + 7*x^4 + 5*x^2 + 4*x consPol 5 7 ejPol2 == 8*x^5 + 5*x^2 + 4*x
grado :: Polinomio a -> Int Source
(grado p) es el grado del polinomio p. Por ejemplo,
ejPol3 == 6*x^4 + 2*x grado ejPol3 == 4