.. py:module:: reconeixement Reconeixement ============= L’ETSEIB, com cada any, vol fer un reconeixement als 10 millors estudiants de cada curs. Per aquest motiu ens demanen la nostra ajuda. Es disposa d’un fitxer amb una línia que conté la següent informació per cada estudiant:: NOM_ESTUDIANT:NOTA1:NOTA2:NOTA3:NOTA4:NOTA5 és a dir, el nom de l’estudiant (string) i cinc notes (valors reals entre 0.0 i 10.0). Tant el nom com cadascuna de les notes estan separats pel caràcter ’:’ (dos punts). Per exemple, el fitxer :download:`dades.txt` conté el següent: .. literalinclude:: dades.txt Dissenya i desa les funcions següents al mòdul :py:mod:`reconeixement` (fitxer :file:`reconeixement.py`): #. La funció :py:func:`decodifica` que a partir d’un string que conté una línia del fitxer amb les dades d’un estudiant, retorni un tuple amb dos valors: la nota mitjana de l’estudiant (real) i el seu nom (string). Per exemple: .. literalinclude:: tests-decodifica.txt :language: python3 :lines: 3-8 Disposeu de més jocs de proves al fitxer :download:`tests-decodifica.txt`. #. La funció :py:func:`millors` que, a partir del nom d’un fitxer on hi ha les notes de cadascun dels estudiants d’un curs, retorni una llista amb els nom dels 10 estudiants que tenen la mitjana més alta, ordenats de més a menys nota. Aquesta funció ha de cridar l’anterior. Per exemple: .. literalinclude:: tests-millors.txt :language: python3 :lines: 3-7 Disposeu de més jocs de proves al fitxer :download:`tests-millors.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`reconeixement.py`