1. Primers vols¶
Es disposa d’una llista de companyies aèries a on cada element és una llista de vols d’una companyia amb el nom d’un destí (string) i una sèrie d’enters que indiquen hores en què hi ha vols d’aquesta companyia per a aquest destí. Per exemple, la següent llista de companyies
>>> lc = [['BCN',8,9,12,14,15,21], ['BIL',8,9,11,15,18,19,20],
... ['BCN',10,15,18,21], ['BCN',7,15,19,21]]
conté a la primera posició una llista de vols que volen a 'BCN' a les hores 8, 9, 12, 14, 15 i 21.
Addicionalment, disposen d’una llista amb els noms de les companyies, ordenada de manera que el nom de la companyia corresponent a la posició i de la llista de companyies es troba a la mateixa posició i de la llista de noms. Per exemple, donada la llista
>>> lnoms = ['AirVol','VolinAir','CatAir','CAL']
el nom de la primera companyia de la llista de companyies seria 'AirVol'.
Dissenya les funcions següents i desa-les al mòdul primvols
(fitxer primvols.py):
- primvols.primer_vol(lvols, d, h)¶
Retorna la primera hora en què es pot volar al destí d.
- Paràmetres:
- Tipus de retorn:
- Retorna:
la primera hora a partir de l’hora h (inclosa) a la que es pot volar al destí d o -1 si els vols no corresponen al destí d o no hi ha cap hora per volar a partir de l’hora h donada.
Per exemple:
>>> lv = ['BCN',8,9,12,14,15,18,20,21] >>> primer_vol(lv,'BCN',16) 18 >>> primer_vol(lv,'BCN',14) 14 >>> primer_vol(lv,'BCN',22) -1 >>> primer_vol(lv,'SEV',14) -1
Disposes de més tests al fitxer test-primer-vol.txt.
- primvols.ordena(l)¶
Modifica la llista l de manera que l’ordre de les tuples és ascendent segons l’hora de sortida.
- Paràmetres:
l (list(tuple(str, int))) – llista de tuples a on el primer element és el nom d’una companyia i el segon una hora de sortida.
Per exemple:
>>> l = [('CAL', 19), ('AirVol', 21), ('CatAir', 18)] >>> ordena(l) >>> l [('CatAir', 18), ('CAL', 19), ('AirVol', 21)]
Disposes de més tests al fitxer test-ordena.txt.
- primvols.vols(lc, d, h, lnoms)¶
Retorna una llista amb les companyies que volen al destí d i en tenen un vol a partir de l’hora h.
- Paràmetres:
- Tipus de retorn:
- Retorna:
una llista amb les companyies que disposen de vols que volen al destí d a partir de l’hora h. Cada element de la llista és una tupla amb el nom de la companyia i la primera hora a partir de l’hora h (inclosa) en què la companyia té un vol al destí d. El nom d’una companyia a la posició i de la llista lc es troba a la mateixa posició i de la llista lnoms. Si no hi ha cap companyia que compleixi les condicions, la funció retorna la llista buida.
Important
Aquesta funció ha de cridar a la funció
primer_vol().Per exemple:
>>> lnoms = ['AirVol','VolinAir','CatAir','CAL'] >>> lc = [['BCN',8,9,12,14,15,21], ['BIL',8,9,11,15,18,19,20], ... ['BCN',10,15,18,21], ['BCN',7,15,19,21]] >>> vols(lc,'BCN',16,lnoms) [('AirVol', 21), ('CatAir', 18), ('CAL', 19)] >>> vols(lc,'SEV',12,lnoms) []
Disposes de més tests al fitxer test-vols.txt.