Zona de cerca ============= #. Dissenya la funció :py:func:`distancia` que donats quatre nombres que representen les coordenades de dos punts ``(x1,y1)`` i ``(x2,y2)``, retorni la `distància `_ entre aquests dos punts. Desa la funció al fitxer :file:`zona_de_cerca.py`. La funció ha de passar el següent doctest: .. literalinclude:: zona_de_cerca1.txt :language: python3 :lines: 3- .. note:: Pots descarregar el fitxer amb tests :download:`zona_de_cerca1.txt ` #. Dissenya la funció :py:func:`area_circumferencia` que donat el radi d'una circumferència, retorna l'àrea. Desa la funció al mateix fitxer de l'apartat anterior :file:`zona_de_cerca.py`. La funció ha de passar el següent doctest: .. literalinclude:: zona_de_cerca2.txt :language: python3 :lines: 3- .. note:: Pots descarregar el fitxer amb tests :download:`zona_de_cerca2.txt ` #. Un equip de localització de persones perdudes a la muntanya necessita una aplicació per determinar l'área de una zona concreta. En ocasions disposen de dos punts de referència per fixar un àrea circular de cerca, un que utilitzen com a centre i un altre que consideren que es troba al perímetre. Dissenya la funció :py:func:`calcula_area_cerca` que donades les coordenades x i y del centre de la zona de cerca i les coordenades x i y d'un punt del perímetre d'aquesta àrea, retorna l'àrea de la zona de cerca. Aquesta funció ha de cridar les dues funcions dels apartats anteriors. Desa la funció al mateix fitxer de l'apartat anterior :file:`zona_de_cerca.py`. La funció ha de passar el següent doctest: .. literalinclude:: zona_de_cerca3.txt :language: python3 :lines: 3- .. note:: Pots descarregar el fitxer amb tests :download:`zona_de_cerca3.txt ` #. Una vegada fixada l'area de cerca, l'equip de localització col·loca patrulles al seu perímetre. S'ha de saber si una determinada patrulla es troba situada al perímetre de la zona de cerca, amb un certa tolerància. Dissenya la funció :py:func:`al_perimetre` que donades les coordenades x i y del centre de la zona de cerca, el seu radi, les coordenades x i y d'un altre punt, i una tolerància, retorna ``True`` si el segon punt es troba situat al perímetre de l'area de cerca amb aquest marge de desviació, i ``False`` altrament. Aquesta funció ha de cridar a la funció :py:func:`distancia` de l'apartat 1. .. 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 mateix fitxer de l'apartat anterior :file:`zona_de_cerca.py`. La funció ha de passar el següent doctest: .. literalinclude:: zona_de_cerca4.txt :language: python3 :lines: 3-12 .. note:: Pots descarregar el fitxer amb tests :download:`zona_de_cerca4.txt ` .. rubric:: Solució Disposeu de solucions al fitxer :download:`zona_de_cerca.py `