Entrades de teatre 2¶
Es vol dissenyar una aplicació que gestioni la venda d’entrades d’un
teatre. Per això es disposa d’una llista de comandes on cada comanda és
un tuple amb dos elements: zona i nombre de localitats. La zona és un
string com per exemple 'PLATEA', 'ANF', etc. Es disposa d’un diccionari
(el teatre) on la clau és una zona i el seu valor és una altra llista de
dos elements: el nombre de localitats lliures de la zona i el preu de
les localitats d’aquesta zona.
Dissenyeu les funcions següents i deseu-les al fitxer teatre.py:
- teatre.espotservir(teatre, comanda)¶
Retorna
Truesi la comanda es pot servir iFalsesi no.Per exemple,
>>> teadic = {'PLATEA': [100, 40], 'ANF': [50, 30], 'LAT': [50, 20]} >>> espotservir(teadic, ('PLATEA', 2)) True >>> espotservir(teadic, ('LAT', 8)) True >>> espotservir(teadic, ('LAT', 53)) False
Nota
Disposeu de jocs de proves al fitxer
test-espotservir.txt.
- teatre.actualitzateatre(teatre, comanda)¶
Actualitza les localitats del teatre tenint en compte que s’ha servit la comanda
Per exemple,
>>> teadic = {'PLATEA': [100, 40], 'ANF': [50, 30], 'LAT': [50, 20]} >>> actualitzateatre(teadic, ('PLATEA', 2)) >>> teadic == {'PLATEA': [98, 40], 'ANF': [50, 30], 'LAT': [50, 20]} True >>> actualitzateatre(teadic, ('LAT', 8)) >>> teadic == {'PLATEA': [98, 40], 'ANF': [50, 30], 'LAT': [42, 20]} True
Nota
Disposeu de jocs de proves al fitxer
test-actualitzateatre.txt.
- teatre.costcomanda(teatre, comanda)¶
Calcula i retorna el cost d’una comanda
Per exemple,
>>> teadic = {'PLATEA': [100, 40], 'ANF': [50, 30], 'LAT': [50, 20]} >>> costcomanda(teadic, ('PLATEA', 2)) 80 >>> costcomanda(teadic, ('LAT', 8)) 160
Nota
Disposeu de jocs de proves al fitxer
test-costcomanda.txt.
- teatre.entrades(comandes, teatre)¶
Processa una llista de comandes, actualitzant convenientment el teatre i calculant el cost de cada comanda. Aquesta funció ha de retornar una llista amb el mateix nombre d’elements que la llista de comandes i on cada element sigui el cost de la comanda corresponent si aquesta es pot servir, o bé un 0 si no es pot servir. Si la comanda no es pot servir, el teatre no s’ha d’actualitzar.
Per exemple,
>>> teadic = {'PLATEA': [100, 40], 'ANF': [50, 30], 'LAT': [50, 20]} >>> entrades([('PLATEA', 2), ('LAT', 8), ('LAT', 45), ('PLATEA', 3), ('ANF', 5)], teadic) [80, 160, 0, 120, 150] >>> teadic == {'PLATEA': [95, 40], 'ANF': [45, 30], 'LAT': [42, 20]} True
Nota
Disposeu de jocs de proves al fitxer
test-entrades.txt.
Solució
Disposeu d’una solució al fitxer teatre.py.