2. Més allunyat (recursivitat) (2 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir
iteracions (ni for ni while ), només
funcions recursives.
La classe punt2D.Punt2D que ja coneixeu (vegeu classe_Punt2D) representa un punt de l’espai 2D. Està especificada a la pàgina classe_Punt2D del material de l’assignatura. Descarregueu la seva implementació d’aquesta pàgina o directament d’aquí (punt2D.py). En el mòdul puntrec (fitxer puntrec.py) implementeu la funció recursiva especificada a continuació:
- puntrec.punt_mes_allunyat(llista_punts, punt)¶
- Paràmetres:
- Retorna:
un tuple (
tuple) format per les coordenades x i y del punt de la llista més allunyat de punt. Si més d’un punt de la llista està a la mateixa distància màxima de punt, retorna les coordenades del punt d’índex més baix de la llista.
Vegeu per exemple:
>>> from punt2D import Punt2D
>>> from puntrec import punt_mes_allunyat
>>> llista = []
>>> punt = Punt2D(0, 0)
>>> llista.append(Punt2D(3, 4))
>>> punt_mes_allunyat(llista, punt)
(3, 4)
>>> llista.append(Punt2D(-3, -4))
>>> punt_mes_allunyat(llista, punt)
(3, 4)
>>> llista.append(Punt2D(-6, -4))
>>> punt_mes_allunyat(llista, punt)
(-6, -4)
Disposeu del fitxer de tests tests-puntrec.txt. No pugeu el fitxer punt2D.py a la tasca d’Atenea, només puntrec.py.