Classe Tren =========== Implementació de la classe Tren ------------------------------- .. py:module:: trens La classe :py:class:`Tren`, especificada a continuació, permet de representar un tren format per vagons que són instàncies de la classe :py:class:`vagons.Vago`. .. py:class:: Tren(nom) Crea un tren amb el nom donat i sense cap vagó. .. rubric:: Atributs: .. py:attribute:: nom Nom del tren (:py:class:`str`) .. rubric:: Mètodes .. py:method:: afegir_vago(vago) Afegeix un vagó al final del tren. .. py:method:: capacitat() Retorna la capacitat total del tren, comptant persones assegudes i dretes. Aquesta classe ha de suportar les **operacions** següents: +--------------------------+----------------------------------------------------+ | Operació | Resultat | +==========================+====================================================+ | ``t[i]`` | Retorna el i-èssim vagó del tren `t`. | | | Es compleix que :math:`0 \leq i>> from trens import Tren >>> from vagons import Vago >>> t = Tren('Intercity 2000') >>> t.afegir_vago(Vago('V1', 30, 70)) >>> t.afegir_vago(Vago('V2', 40, 50)) >>> t.afegir_vago(Vago('V3', 35, 60)) >>> for v in t: ... print(v) Funciona correctament? Per què? .. py:module:: usa_tren 3. En el fitxer :file:`usa_tren.py`, implementeu les funcions següents: .. function:: mes_capacitat(tren1, tren2) :param tren1: una instància de la classe :py:class:`Tren` :param tren2: una instància de la classe :py:class:`Tren` :return: el tren de més capacitat dels dos donats (:py:class:`Tren`). .. function:: seients_tren(tren) :param tren: una instància de la classe :py:class:`Tren` :return: el nombre total de seients del tren (:py:class:`int`) .. function:: vagons_capacitat(tren, capmin) :param tren: una instància de la classe :py:class:`Tren` :param capmin: un valor de capacitat de passatge (:py:class:`int`) :return: un iterador dels vagons de tren que tenen una capacitat superior o igual a `capmin`, en el mateix ordre que són dins del tren. Disposeu d'un joc de prova al fitxer :download:`tests-usa.txt`. .. note:: Disposeu de solucions als fitxers :download:`trens.py`. i :download:`usa_tren.py`.