Notas de evaluación acumulada
La evaluación acumulada, las notas se calculan recursivamente con la siguiente función
N(1) = E(1) N(k) = máximo(E(k), 0.4*N(k-1)+0.6*E(k))
donde E(k) es la nota del examen k. Por ejemplo, si las notas de los exámenes son [3,7,6,3] entonces las acumuladas son [3.0,7.0,6.4,4.4]
Las notas e los exámenes se encuentran en ficheros CSV con los valores separados por comas. Cada línea representa la nota de un alumno, el primer valor es el identificador del alumno y los restantes son sus notas. Por ejemplo, el contenido de examenes.csv es
juaruigar,3,7,9,3 evadialop,3,6,7,4 carrodmes,0,9,8,7
Definir las funciones
acumuladas :: [Double] -> [Double] notasAcumuladas :: FilePath -> FilePath -> IO ()
tales que
- (acumuladas xs) es la lista de las notas acumuladas (redondeadas con un decimal) de los notas de los exámenes xs. Por ejemplo,
acumuladas [2,5] == [2.0,5.0] acumuladas [5,2] == [5.0,3.2] acumuladas [3,7,6,3] == [3.0,7.0,6.4,4.4] acumuladas [3,6,7,3] == [3.0,6.0,7.0,4.6]
- (notasAcumuladas f1 f2) que escriba en el fichero f2 las notas acumuladas correspondientes a las notas de los exámenes del fichero f1. Por ejemplo, al evaluar
notasAcumuladas "examenes.csv" "acumuladas.csv"
escribe en el fichero acumuladas.csv
juaruigar,3.0,7.0,9.0,5.4 evadialop,3.0,6.0,7.0,5.2 carrodmes,0.0,9.0,8.4,7.6
