.. py:module:: perimetre Recursivitat: Perímetre d'un Polígon *(3 punts)* ================================================ .. warning:: Per a resoldre aquest exercici **no es poden fer servir iteracions (ni** ``for`` **ni** ``while`` **)**, només funcions recursives. Considerem les classes :py:class:`Punt2D` (que representa un punt en dues dimensions) i :py:class:`Poligon` (que representa polígons de l'espai 2D) que ja coneixeu (vegeu els enunciats `Classe Punt2D `_ i `Classe Poligon `_). Es demana que al mòdul :py:class:`perimetre` (fitxer :file:`perimetre.py`) implementeu la funció **recursiva** següent que donada una instaǹcia *p* de la classe :py:class:`~poligon.Poligon` en calcula i retorna el seu perímetre (:class:`float`). .. py:function:: calcul_perimetre(p) :param p: instaǹcia de la classe :py:class:`~poligon.Poligon` :return: el perímetre de *p* (:class:`float`) Per exemple: .. literalinclude:: test-perimetre.txt :language: python :start-after: ---ini :end-before: ---fi Recordeu que el perímetre d'un polígon és la suma de les longituds de totes les seves arestes, incloent-hi la que va del darrer punt al primer, i que la longitud d'una aresta es pot calcular com la distància entre els dos vèrtexs de l'aresta. Disposeu dels jocs de proves al fitxer :download:`test-perimetre.txt` i de les classes esmentades als fitxers :download:`punt2D.py` i :download:`poligon.py`.