Errors de sistema *(3 punts)* ============================= #. Representem el seguiment de l'estat d'un sistema com una llista d'strings on cada element és un estat que pot ser ``'OK'``, ``'WARN'`` o ``'ERROR'``. Es considera que els dos últims són *estats problemàtics*. Cada posició de la llista correspon a un instant consecutiu en el temps. Per exemple, a la llista .. code-block:: python ['OK', 'WARN', 'ERROR', 'ERROR'] el sistema es troba inicialment en estat ``'OK'``, després passa a ``'WARN'`` i finalment es registren dos estats consecutius ``'ERROR'``. Dissenya la funció ``analitza_estats`` que donada una llista amb el format anterior i un enter positiu que representa un límit d'errors, retorna una llista de missatges (strings) amb avisos de canvis d'estat o bé la llista ``['estat crític']`` si el nombre d'estats ``'ERROR'`` arriba al límit donat. Suposarem que la llista donada té com a mínim dos estats. La construcció de la llista de missatges ha de seguir les regles següents: * Si un estat és ``'OK'`` i el següent és ``'WARN'``, cal afegir ``'alerta'``. * Si un estat és ``'WARN'`` i el següent és ``'ERROR'``, cal afegir ``'estat greu'``. * Si dos estats consecutius són iguals i problemàtics, cal afegir ``'sense canvi'``. * En qualsevol altre cas, no s'afegeix res. Desa la funció al fitxer :file:`errors.py`: Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-analitza-estats.txt :language: python3 :lines: 3-8 Disposes de més tests al fitxer :download:`test-analitza-estats.txt` Disposes de solucions al fitxer :download:`errors.py`.