Solució del parcial d’Informàtica¶
- Organització:
Secció ETSEIB, Departament de Ciències de la Computació, UPC
- Data:
27 d’octubre de 2022
- Copyright:
Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons
- Durada:
1 hora i 10 minuts
Jocs de proves
Edat futura¶
Els exemples que compten per la nota són només els que van seguits de
# doctesttag: +TAG=1_edat_futura.
>>> from datetime import date
>>> from astronautes import Astronauta
>>> from edat_futura import edat_futura
>>> edat_futura(Astronauta('Fina', date(1999, 2, 12), 360), date(2034, 2, 11)) # doctesttag: +TAG=1_edat_futura
34
>>> edat_futura(Astronauta('Kim', date(2073, 12, 23), 340), date(2073, 12, 23)) # doctesttag: +TAG=1_edat_futura
0
>>> edat_futura(Astronauta('Roger', date(2014, 3, 31), 560), date(2042, 5, 13)) # doctesttag: +TAG=1_edat_futura
28
>>> edat_futura(Astronauta('Maria', date(2017, 5, 10), 324), date(2052, 12, 23)) # doctesttag: +TAG=1_edat_futura
35
>>> edat_futura(Astronauta('Delfi', date(2017, 3, 31), 435), date(2054, 2, 11)) # doctesttag: +TAG=1_edat_futura
36
Més entrenament¶
Els exemples que compten per la nota són només els que van seguits de
# doctesttag: +TAG=2_mes_entrenament.
>>> from mes_entrenament import mes_entrenament
>>> l = [Astronauta('Roger', date(2004, 12, 1), 240)]
>>> mes_entrenament(l, 720) # doctesttag: +TAG=2_mes_entrenament
''
>>> mes_entrenament(l, 721) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Roger - 01/12/2004'
>>> l.append(Astronauta('Maria', date(2004, 11, 3), 267))
>>> mes_entrenament(l, 810) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Roger - 01/12/2004'
>>> l.append(Astronauta('Lucas', date(1998, 10, 4), 139))
>>> mes_entrenament(l, 300) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Lucas - 04/10/1998'
>>> l2 = []
>>> i = 1
>>> for nom, anyi in zip('abcde', [1995, 1999, 2000, 2004]):
... l2.append(Astronauta(nom, date(anyi, 2, 2), 200+i*10))
... i = i+1
...
>>> mes_entrenament(l2, 400) # doctesttag: +TAG=2_mes_entrenament
''
>>> mes_entrenament(l2, 421) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: a - 02/02/1995'
>>> mes_entrenament(l2, 441) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: a - 02/02/1995'
>>> mes_entrenament(l2[1:], 441) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: b - 02/02/1999'
>>> mes_entrenament(l2[3:], 721) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: d - 02/02/2004'
>>> l2.append(Astronauta('Nelson', date(2003, 3, 5), 0))
>>> mes_entrenament(l2, 100) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Nelson - 05/03/2003'
>>> l2 = l2 + [Astronauta('Kim', date(2013, 5, 31), 800), Astronauta('Judit', date(1999, 7, 1), 240)]
>>> mes_entrenament(l2, 200) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: Nelson - 05/03/2003'
>>> mes_entrenament(l2[1:], 800) # doctesttag: +TAG=2_mes_entrenament
'Astronauta: b - 02/02/1999'
Localització¶
Els exemples que compten per la nota són només els que van seguits de
# doctesttag: +TAG=3_localitzacio.
>>> from localitzacions import Localitzacio
>>> ubi = Localitzacio('CopiSL', '08028')
>>> ubi.nom # doctesttag: +TAG=3_localitzacio
'CopiSL'
>>> ubi.codi_postal # doctesttag: +TAG=3_localitzacio
'08028'
>>> len(ubi) # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P1') # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P2') # doctesttag: +TAG=3_localitzacio
0
>>> ubi['XRT56'] = 'P1'
>>> ubi['XRT56'] # doctesttag: +TAG=3_localitzacio
'P1'
>>> 'XRT56' in ubi and 'HJG45' not in ubi # doctesttag: +TAG=3_localitzacio
True
>>> ubi['AAB56'] = 'P2'
>>> ubi['POI89'] = 'P1'
>>> 'POI89' in ubi and 'AAB56' in ubi and 'ZZZ90' not in ubi # doctesttag: +TAG=3_localitzacio
True
>>> len(ubi) # doctesttag: +TAG=3_localitzacio
3
>>> ubi.quants_paquets('P1') # doctesttag: +TAG=3_localitzacio
2
>>> ubi.quants_paquets('2B') # doctesttag: +TAG=3_localitzacio
0
>>> ubi.quants_paquets('P2') # doctesttag: +TAG=3_localitzacio
1
>>> ubi.llista_passadis() # doctesttag: +TAG=3_localitzacio
['P1', 'P2']
>>> list(iter(ubi)) # doctesttag: +TAG=3_localitzacio
['XRT56', 'AAB56', 'POI89']
>>> ubi['XRT56'] = 'P90'
>>> len(ubi) == 3 and ubi.llista_passadis()==['P1', 'P2', 'P90']
True
>>> it = iter(ubi)
>>> it == iter(it) # doctesttag: +TAG=3_localitzacio
True
>>> next(it) # doctesttag: +TAG=3_localitzacio
'XRT56'
>>> list(it) # doctesttag: +TAG=3_localitzacio
['AAB56', 'POI89']
>>> ubi['IUT89'] = 'P8'
>>> ubi['WER23'] = 'P8'
>>> ubi['TYR78'] = 'P3'
>>> for e in iter(ubi): # doctesttag: +TAG=3_localitzacio
... print(e, end='-')
...
XRT56-AAB56-POI89-IUT89-WER23-TYR78-
>>> ubi['OOI54'] = 'P1'
>>> ubi['AOI54'] = 'P1'
>>> ubi['QOI54'] = 'P1'
>>> len(ubi) # doctesttag: +TAG=3_localitzacio
9
>>> ubi.quants_paquets('P3') # doctesttag: +TAG=3_localitzacio
1
>>> ubi.quants_paquets('P8') # doctesttag: +TAG=3_localitzacio
2
>>> ubi.quants_paquets('P1') # doctesttag: +TAG=3_localitzacio
4
>>> ubi.quants_paquets('P2') # doctesttag: +TAG=3_localitzacio
1
>>> ubi.quants_paquets('P9') # doctesttag: +TAG=3_localitzacio
0
>>> ubi.llista_passadis() # doctesttag: +TAG=3_localitzacio
['P1', 'P2', 'P3', 'P8', 'P90']
>>> ubi2 = Localitzacio('BubaSL', '08038')
>>> for p in range(1, 3):
... passadis = 'P{:02}'.format(p)
... for idp in range(6):
... paquet = '{:s}-{:02d}'.format(passadis, idp)
... ubi2[paquet] = passadis
...
>>> it = iter(ubi2)
>>> iter(it) == it # doctesttag: +TAG=3_localitzacio
True
>>> list(iter(ubi2)) # doctesttag: +TAG=3_localitzacio
['P01-00', 'P01-01', 'P01-02', 'P01-03', 'P01-04', 'P01-05', 'P02-00', 'P02-01', 'P02-02', 'P02-03', 'P02-04', 'P02-05']