Estels ====== Els observatoris astronómics permeten mesurar amb precisió la distància i la *magnitud* (brillantor aparent) dels estels. La distància a un estel es mesura en *anys llum* i la magnitud és un real que té sentit invers a la brillantor: és petit quan l'estel brilla molt, i gran quan brilla poc. Per exemple, la magnitud del ``Sol`` és ``-26.73``, i la de ``Polaris`` (Estel Polar) ``+2.01``. Per guardar la informació de alguns estels coneguts es fa servir un diccionari on la clau és el nom de l'estel (un string), i el valor és una tupla de dos reals: la magnitud i la distància a la Terra. #. Dissenya la funció :py:func:`magnitud_semblant` que donat un diccionari com el descrit abans, el nom d'un estel ``s`` (un string) i una tolerància ``epsilon`` (un real), retorna la llista de noms d'estels que tenen una magnitud *igual* a la de l'estel ``s``, tenint en compte la tolerància ``epsilon``. La llista no ha contenir l'estel ``s``, i ha d'estar ordenada alfabéticament. Podeu suposar que ``s`` sempre serà al diccionari. .. warning:: Recorda que la comparació de la igualtat de dos reals ``r1`` i ``r2`` no es fa amb l'operador ``==`` sino que s'ha de tenir en compte una tolerància ``epsilon``: ``abs(r1-r2) < epsilon`` Desa la funció al fitxer :file:`estels.py`. La funció ha de passar el següent doctest: .. literalinclude:: estels1.txt :language: python3 :lines: 3-12 .. note:: Pots descarregar el fitxer complet amb tests :download:`estels1.txt ` #. Dissenya la funció :py:func:`mes_propera_de_magnitud` que donat un diccionari com el descrit abans, un valor de magnitud ``magn`` (un real) i una tolerància ``epsilon`` (un altre real), retorna el nom de l'estel de magnitud ``magn`` (amb la tolerància ``epsilon`` donada) que està més a prop de la Terra. Si no hagués cap estel de magnitud ``magn`` retorna l'string buit. .. note:: Podeu suposar que les distàncies dels estels de magnitud ``magn`` seran totes diferents. Desa la funció al fitxer :file:`estels.py`. La funció ha de passar el següent doctest: .. literalinclude:: estels2.txt :language: python3 :lines: 3-16 .. note:: Pots descarregar el fitxer complet amb tests :download:`estels2.txt ` .. rubric:: Solució Disposeu de solucions al fitxer :download:`estels.py `