.. py:module:: esfera Classes Punt3D, Esfera i Pilota =============================== Classe Punt3D ------------- Al fitxer :download:`punt3D.py ` disposeu de la implementació de la classe :py:class:`Punt3D` que representa un punt de l'espai 3D a partir de les seves coordenades cartesianes. Vegeu-ne l'especificació: .. py:class:: Punt3D(x, y, z) Construeix una instància a partir de les coordenades cartesianes x, y i z .. rubric:: Atributs .. py:attribute:: x Coordenada x (:py:class:`float`) .. py:attribute:: y Coordenada y (:py:class:`float`) .. py:attribute:: z Coordenada z (:py:class:`float`) La classe suporta la funció :py:func:`str` que retorna un string de format: "(x, y, z)". * En un interpret de python, proveu de crear, consultar i modificar atributs de les instàncies de :py:class:`Punt3D`, per exemple: .. literalinclude:: test-esfera.txt :language: python :start-after: --ini-enunciat-punt :end-before: --fi-enunciat-punt Classe Esfera ------------- La classe :class:`Esfera`, especificada a continuació, representa una esfera a partir del seu centre i radi. .. py:class:: Esfera(centre, radi) Construeix una instància a partir del centre (instància a :py:class:`Punt3D`) i radi. .. rubric:: Atributs .. py:attribute:: centre Centre de l'esfera (una instància a la classe :py:class:`Punt3D`) .. py:attribute:: radi Radi de l'esfera (:py:class:`float`) en centímetres .. rubric:: Mètodes .. py:method:: volum() Retorna el volum de l'esfera, en centímetres cúbics. Vegeu un exemple d'us de la classe: .. literalinclude:: test-esfera.txt :language: python :start-after: --ini-enunciat-esfera :end-before: --fi-enunciat-esfera * Implementeu aquesta classe en el fitxer :file:`esfera.py`. Disposeu dels jocs de proves al fitxer :download:`test-esfera.txt` i d'una solució al fitxer :download:`esfera.py`. .. py:module:: pilota Classe Pilota ------------- La classe :class:`Pilota` es deriva per herència de la classe :class:`Esfera` i representa una pilota esfèrica. Vegeu-ne l'especificació: .. py:class:: Pilota(radi, centre, pes, color) Construeix una instància a partir del radi, centre, pes i color. .. rubric:: Atributs (a més dels de la classe base) .. py:attribute:: pes Pes de la pilota (:py:class:`float`) en grams .. py:attribute:: color Color de la pilota (:py:class:`str`) .. rubric:: Mètodes (a més del de la classe base) .. py:method:: densitat() Retorna la densitat de la pilota en grams per centímetres cúbics. La funció :py:func:`str` sobre la classe :py:class:`Pilota` retorna un string com el de la classe :py:class:`Esfera` però amb el substring "Pilota" en lloc de "Esfera". Vegeu un exemple d'us de la classe: .. literalinclude:: test-pilota.txt :language: python :start-after: --ini-enunciat :end-before: --fi-enunciat Observeu que, a diferència de la classe base, en la instanciació, el paràmetre del radi precedeix el del centre. * Implementeu aquesta classe en el fitxer :file:`pilota.py`. Disposeu dels jocs de proves al fitxer :download:`test-pilota.txt` i d'una solució al fitxer :download:`pilota.py`.