Solució del parcial d’Informàtica¶
- Organització:
Secció ETSEIB, Departament de Ciències de la Computació, UPC
- Data:
12 d’abril de 2023
- Durada:
60 minuts
- Copyright:
Reconeixement-CompartirIgual 4.0 No adaptada de Creative Commons
Jocs de proves
Test exercici 1 : Etapes¶
Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=1_etapes
>>> from etapes import Etapa
>>> from datetime import datetime
>>> e = Etapa('Badalona', datetime(2023, 3, 23, 9, 15), datetime(2023, 3, 23, 10, 15))
>>> str(e) # doctesttag: +TAG=1_etapes
'Etapa: Badalona'
>>> e.durada() # doctesttag: +TAG=1_etapes
1
>>> e = Etapa('Girona', datetime(2023, 3, 23, 9, 15), datetime(2023, 3, 24, 9, 15))
>>> str(e) # doctesttag: +TAG=1_etapes
'Etapa: Girona'
>>> e.durada() # doctesttag: +TAG=1_etapes
24
>>> e = Etapa('Barcelona', datetime(2023, 3, 23, 9, 15), datetime(2023, 3, 24, 19, 15))
>>> e.durada() # doctesttag: +TAG=1_etapes
34
>>> e = Etapa('Barcelona', datetime(2023, 3, 23, 9, 15), datetime(2023, 3, 24, 19, 59))
>>> e.durada() # doctesttag: +TAG=1_etapes
34
>>> e = Etapa('Londres', datetime(2023, 3, 23, 19, 30), datetime(2023, 3, 27, 19, 30))
>>> str(e) # doctesttag: +TAG=1_etapes
'Etapa: Londres'
>>> e.durada() # doctesttag: +TAG=1_etapes
96
>>> e = Etapa('Moscou', datetime(2023, 3, 23, 9, 15), datetime(2023, 3, 26, 9, 15))
>>> str(e) # doctesttag: +TAG=1_etapes
'Etapa: Moscou'
>>> e.durada() # doctesttag: +TAG=1_etapes
72
Test exercici 2 : itineraris¶
Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=2_itineraris
>>> from datetime import datetime
>>> from etapes import Etapa
>>> from itineraris import Itinerari
>>> it = Itinerari('Joan')
>>> it.nom # doctesttag: +TAG=2_itineraris
'Joan'
>>> it.nom = 'Pere'
>>> it.nom # doctesttag: +TAG=2_itineraris
'Pere'
>>> len(it) # doctesttag: +TAG=2_itineraris
0
>>> it.etapa_llarga(10) # doctesttag: +TAG=2_itineraris
''
>>> it.afegir_etapa(Etapa('Badalona', datetime(2023, 3, 23, 12), datetime(2023, 3, 23, 13))) # doctesttag: +TAG=2_itineraris
>>> print(it[0]) # doctesttag: +TAG=2_itineraris
Etapa: Badalona
>>> it.etapa_llarga(1) # doctesttag: +TAG=2_itineraris
''
>>> it.afegir_etapa(Etapa('Londres', datetime(2023, 3, 23, 16, 59), datetime(2023, 3, 25, 10, 5)))
>>> it.afegir_etapa(Etapa('Siracusa', datetime(2023, 3, 25, 14, 38), datetime(2023, 4, 3, 7, 10)))
>>> len(it) # doctesttag: +TAG=2_itineraris
3
>>> list(iter(it)) # doctesttag: +TAG=2_itineraris
['Badalona', 'Londres', 'Siracusa']
>>> it.etapa_llarga(40) # doctesttag: +TAG=2_itineraris
'Londres'
>>> it.etapa_llarga(100) # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> it.temps_etapes() # doctesttag: +TAG=2_itineraris
250
>>> it.afegir_etapa(Etapa('Belgrad', datetime(2023, 4, 3, 11, 38), datetime(2023, 4, 7, 9, 10)))
>>> it.etapa_llarga(100) # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> it.temps_etapes() # doctesttag: +TAG=2_itineraris
343
>>> len(it) # doctesttag: +TAG=2_itineraris
4
>>> it[2].poblacio # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> it[3].poblacio # doctesttag: +TAG=2_itineraris
'Belgrad'
>>> it[3].durada() # doctesttag: +TAG=2_itineraris
93
>>> it.afegir_etapa(Etapa('Ginebra', datetime(2023, 4, 7, 21, 0), datetime(2023, 4, 8, 12, 10)))
>>> it.temps_etapes() # doctesttag: +TAG=2_itineraris
358
>>> it.etapa_llarga(100) # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> it.afegir_etapa(Etapa('Berlin', datetime(2023, 4, 8, 22, 0), datetime(2023, 4, 13, 22, 10)))
>>> it.temps_etapes() # doctesttag: +TAG=2_itineraris
478
>>> it.etapa_llarga(112) # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> len(it) # doctesttag: +TAG=2_itineraris
6
>>> a = iter(it)
>>> next(a) # doctesttag: +TAG=2_itineraris
'Badalona'
>>> next(a) # doctesttag: +TAG=2_itineraris
'Londres'
>>> next(a) # doctesttag: +TAG=2_itineraris
'Siracusa'
>>> list(a) # doctesttag: +TAG=2_itineraris
['Belgrad', 'Ginebra', 'Berlin']
Test exercici 3 : AlbumPreu¶
Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=3_albumpreu
>>> from datetime import timedelta
>>> from pessa_musical import PeçaMusical
>>> from album_preu import AlbumPreu
>>> a = AlbumPreu('El pitjor de ', 'Joana Perez', 12, 0.5)
>>> a.autor # doctesttag: +TAG=3_albumpreu
'Joana Perez'
>>> a.titol # doctesttag: +TAG=3_albumpreu
'El pitjor de '
>>> a.preup # doctesttag: +TAG=3_albumpreu
0.5
>>> a.preup = 0.1
>>> a.preup # doctesttag: +TAG=3_albumpreu
0.1
>>> a[0] = PeçaMusical('P1', timedelta(seconds=55))
>>> a[1] = PeçaMusical('P2', timedelta(seconds=180))
>>> a.cost_total(1) # doctesttag: +TAG=3_albumpreu
23.5
>>> a.cost_total(180) # doctesttag: +TAG=3_albumpreu
18.0
>>> int(a.cost_total(181)) # doctesttag: +TAG=3_albumpreu
0
>>> a[2] = PeçaMusical('P3', timedelta(seconds=240))
>>> a[3] = PeçaMusical('P4', timedelta(seconds=110))
>>> a[4] = PeçaMusical('P5', timedelta(seconds=120))
>>> int(a.cost_total(250)) # doctesttag: +TAG=3_albumpreu
0
>>> a.cost_total(120) # doctesttag: +TAG=3_albumpreu
54.0
>>> a.cost_total(179) # doctesttag: +TAG=3_albumpreu
42.0
>>> a.cost_total(100) # doctesttag: +TAG=3_albumpreu
65.0
>>> a[5] = PeçaMusical('P6', timedelta(seconds=260))
>>> a.cost_total(250) # doctesttag: +TAG=3_albumpreu
26.0
>>> a.cost_total(160) # doctesttag: +TAG=3_albumpreu
68.0
>>> a[6] = PeçaMusical('P7', timedelta(seconds=155))
>>> a.cost_total(250) # doctesttag: +TAG=3_albumpreu
26.0
>>> int(a.cost_total(160)) # doctesttag: +TAG=3_albumpreu
68
>>> int(a.cost_total(155)) # doctesttag: +TAG=3_albumpreu
83