Tendències de borsa (2,5 punts) =============================== Una *llista de cotitzacions* en borsa d'una empresa és una llista on el primer element és un string amb el nom de l'empresa i la resta una sèrie de valors numèrics amb les cotitzacions diàries ordenades cronològicament. Per exemple: .. literalinclude:: test-extrems.txt :language: python3 :lines: 3 Un *màxim significatiu* és una cotització més gran que la cotització anterior i que la posterior i que també és més gran que la mitjana de les cotitzacions anteriors i la mitjana de les cotitzacions posteriors. Un *mínim significatiu* és una cotització més petita que la cotització anterior i que la posterior i que també és més petita que la mitjana dels punts anteriors i la mitjana dels punts posteriors. #. Dissenya la següent funció i desa-la al fitxer ``borsa.py``. .. function:: extrems(lcot) Retorna els màxims i mínims significatius de la llista de cotitzacions *lcot*. La primera i l'última cotització no poden ser màxims o mínims significatius. :param list lcot: llista de cotitzacions :rtype: list :return: una llista on cada element és una tupla amb la informació d'un màxim o mínim significatiu i conté: * el nom de l'empresa * l'string ``'max'`` si és un màxim significatiu i l'string ``'min'`` si és un mínim significatiu. * la cotització del màxim o el mínim Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-extrems.txt :language: python3 :lines: 3-13 Disposes de més tests al fitxer :download:`test-extrems.txt` #. Disposem d'una *llista d'empreses* on cada element és una llista de cotitzacions. Per exemple: .. literalinclude:: test-tendencia.txt :language: python3 :lines: 3-7 Als màxims i mínims significatius els anomenem *extrems*. Representem la tendència d'una empresa amb un string de la següent forma: * Si una empresa té menys de dos extrems, la seva tendència és ``'indefinida'``. * Si el preu de l’últim extrem és més gran o igual que el preu del primer extrem, la tendència és ``'alcista'``. * Si el preu de l’últim extrem és més petit que el preu del primer extrem, la tendència és ``'baixista'``. Dissenya la funció següent i desa-la al fitxer ``borsa.py``. .. function:: tendencia(lemp) Retorna la llista de tendències de les empreses de la llista *lemp*. :param list lemp: llista d'empreses :rtype: list :return: una llista on cada element és una tupla de dos elements amb el nom d'una empresa de *lemp* i l'string amb la seva tendència, en el mateix ordre en que apareixen a *lemp*. Aquesta funció **ha de cridar** la funció :func:`extrems`. Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-tendencia.txt :language: python3 :lines: 3-9 Disposes de més tests al fitxer :download:`test-tendencia.txt` Disposes de solucions al fitxer :download:`borsa.py`.