I1M-0.1.0.0: Código de I1M.

LicenseCreative Commons
MaintainerJosé A. Alonso
Safe HaskellSafe
LanguageHaskell2010

I1M.Pol

Description

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

Synopsis

Documentation

data Polinomio a Source

Tipo de dato de polinomios.

Instances

Eq a => Eq (Polinomio a) Source 
(Num a, Show a, Eq a) => Show (Polinomio a) Source 

polCero :: Polinomio a Source

polCero es el polinomio cero. Por ejemplo,

> polCero
0

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

coefLider :: Num t => Polinomio t -> t Source

(coefLider p) es el coeficiente líder del polinomio p. Por ejemplo,

ejPol3            ==  6*x^4 + 2*x
coefLider ejPol3  ==  6

restoPol :: Polinomio t -> Polinomio t Source

(restoPol p) es el resto del polinomio p. Por ejemplo,

ejPol3           ==  6*x^4 + 2*x
restoPol ejPol3  ==  2*x
ejPol2           ==  x^5 + 5*x^2 + 4*x
restoPol ejPol2  ==  5*x^2 + 4*x