Zona de cerca¶
Dissenya la funció
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
zona_de_cerca.py. La funció ha de passar el següent doctest:>>> d = distancia(0, 0, 0, 1) >>> round(d, 4) 1.0 >>> d = distancia(0, 0, -1, 0) >>> round(d, 4) 1.0 >>> d = distancia(0, 0, 1, 1) >>> round(d, 4) 1.4142 >>> d = distancia(7, 5, 4, 1) >>> round(d, 4) 5.0 >>> d = distancia(-6, -5.78, 3, -4.27) >>> round(d, 4) 9.1258
Nota
Pots descarregar el fitxer amb tests
zona_de_cerca1.txtDissenya la funció
area_circumferencia()que donat el radi d’una circumferència, retorna l’àrea.Desa la funció al mateix fitxer de l’apartat anterior
zona_de_cerca.py. La funció ha de passar el següent doctest:>>> a = area_circumferencia(1) >>> round(a, 4) 3.1416 >>> a = area_circumferencia(12.45) >>> round(a, 4) 486.9547 >>> a = area_circumferencia(0.09) >>> round(a, 4) 0.0254 >>> a = area_circumferencia(7) >>> round(a, 4) 153.938
Nota
Pots descarregar el fitxer amb tests
zona_de_cerca2.txtUn 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ó
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
zona_de_cerca.py. La funció ha de passar el següent doctest:>>> a = calcula_area_cerca(0, 0, 1, 0) >>> round(a, 4) 3.1416 >>> a = calcula_area_cerca(-1, 34.6, 0, 0) >>> round(a, 4) 3764.1307 >>> a = calcula_area_cerca(20, 20, 1, 1) >>> round(a, 4) 2268.2299 >>> a = calcula_area_cerca(3, 3, 1, 1) >>> round(a, 4) 25.1327
Nota
Pots descarregar el fitxer amb tests
zona_de_cerca3.txtUna 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ó
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, retornaTruesi el segon punt es troba situat al perímetre de l’area de cerca amb aquest marge de desviació, iFalsealtrament. Aquesta funció ha de cridar a la funciódistancia()de l’apartat 1.Avís
Recorda que la comparació de la igualtat de dos reals
r1ir2no es fa amb l’operador==sino que s’ha de tenir en compte una tolerànciaepsilon:abs(r1-r2) < epsilonDesa la funció al mateix fitxer de l’apartat anterior
zona_de_cerca.py. La funció ha de passar el següent doctest:>>> al_perimetre(0, 0, 1, 1, 0, 0.01) True >>> al_perimetre(0, 0, 1, 1, 1, 0.1) False >>> al_perimetre(1, 1, 1, 0, 0.99, 0.1) True >>> al_perimetre(2.6, 2.79, 2.037, 0.68, 2.11, 0.01) True >>> al_perimetre(2.6, 2.79, 2.037, 0.70, 2.12, 0.01) False
Nota
Pots descarregar el fitxer amb tests
zona_de_cerca4.txt
Solució
Disposeu de solucions al fitxer zona_de_cerca.py