Paquets¶
Avís
Per a resoldre aquest exercici no es poden fer servir iteracions (ni for ni while ), només funcions recursives.
La classe Paquet representa els paquets que una empresa de missatgeria ha d’enviar. La classe Missatgeria és un contenidor de paquets. Les dues classes estan especificades a continuació i estan implementades al mòdul missatgeria (fitxer missatgeria.py).
- class missatgeria.Paquet(codi, lliurat)¶
Atributs:
La classe suporta la funció
str().
- class missatgeria.Missatgeria¶
Mètodes:
- afegir(paquet)¶
Afegeix el paquet al final de la missatgeria
Operacions:
Operació
Resultat
m[i]- el i-èssim paquet de m
amb 0<=i<len(m)
La classe suporta les funcions
len()istr().
En el mòdul paquets (fitxer paquets.py) dissenyeu la funció recursiva cerca_paquet(), que donat una instància a la classe missatgeria retorna el codi del primer paquet no lliurat. Si tots els paquets han estat lliurats, la funció ha de retornar ''.
Només heu de lliurar paquets.py, no missatgeria.py.
Per exemple:
>>> m = Missatgeria()
>>> m.afegir(Paquet('D451', True))
>>> len(m)
1
>>> str(m[0])
'Paquet: D451'
>>> m.afegir(Paquet('D872', True))
>>> str(m[1])
'Paquet: D872'
>>> m.afegir(Paquet('D703', True))
>>> m.afegir(Paquet('D414', False))
>>> m.afegir(Paquet('D625', True))
>>> m.afegir(Paquet('D266', False))
>>> from paquets import cerca_paquet
>>> cerca_paquet(m)
'D414'
>>> m[3].lliurat = True
>>> cerca_paquet(m)
'D266'
>>> m[5].lliurat = True
>>> cerca_paquet(m)
''
Disposeu dels jocs de prova al fitxer test-missatgeria.txt.
Nota
Disposeu d’una solució de l’exercici al fitxer paquets.py.