PLANOS
o
Aclaraciones:
Esta evaluaci´n es a libro abierto. Se pueden usar todas las funciones y propiedades vistas en clase, aclarando la
o
referencia. Cualquier otra funci´n opropiedad que se utilice debe ser definida o demostrada.
o
No se olvide de poner nombre, nro. de alumno, nro. de hoja y cantidad total de hojas en cada una de las hojas.
Le recomendamos leer elenunciado en su totalidad y organizar sus ideas antes de comenzar la resoluci´n.
o
Recuerde que reusar c´digo es una forma muy eficiente de disminuir el tiempo necesario para programar.
o
La intenci´nde la evaluaci´n es medir cu´nto comprende usted del tema. Por ello, no dude en escribir todo lo
o
o
a
que sabe, explicar lo que se propone antes de escribir c´digo y probar sus funciones conejemplos.
o
Considere la siguiente representaci´n de composiciones musicales:
o
data Nota = Do | Re | Mi | Fa | Sol | La | Si deriving (Eq, Ord)
type Tiempo
= Int
-- el instante en el quesuena una nota
type Duracion = Int
-- cantidad de tiempos que suena una nota
data Comp = Silencio
Batido
Arpegio
Acorde
Duracion
|
Nota Duracion |
Comp Comp
| -- composiciones ensecuencia
Comp Comp
-- composiciones en paralelo
Y considere tambi´n los siguientes datos utilizados por interfaces de reproducci´n de audio:
e
o
type Midi = [[Nota]] -- notas simult´neas paracada tiempo en la duraci´n de la melod´a
a
o
ı
type Sampler = Tiempo -> [Nota] -- funci´n que da las notas que suenan en un tiempo dado
o
Ejercicio 1
Escriba las siguientes funciones:
a)alargar :: Int -> Comp -> Comp
que retorna una composici´n donde la duraci´n cada nota est´ multiplicada por un factor con respecto a la
o
o
a
duraci´n original.
o
b) duracion :: Comp -> Int
queretorna la duraci´n total de la melod´ compuesta (considerando que los acordes terminan cuando termina
o
ıa
el m´s largo).
a
c) sintetizar :: Comp -> Midi
que retorna una lista con un elemento...
Regístrate para leer el documento completo.