Lliga de futbol X64755


Statement
 

pdf   zip

html

Un cop acabada la lliga, un equip de futbol ens acaba de demanar que gestionem la informació relativa a les fitxes dels seus jugadors. Ens interessa guardar de cada jugador: el seu nom, sou, si està lesionat, l’any d’inici del contracte, la seva duració en anys i si ha rebut alguna oferta per la propera temporada. A l’exemple següent, el Pep té un sou de 5000, no està lesionat, el seu contracte ha començat el 2016 i és de 4 anys i té una oferta.

p = [['Pep', 5000, False, 2016, 4, False],\
     ['Pere', 4500, True, 2017, 3, False],\
     ['David', 10000, True, 2015, 5, True],\
     ['Rigoberto', 4000, False, 2014, 6, False]]

Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. En tots els enunciats podeu suposar que sempre hi ha dades.

  1. Feu una funció valid(j, a) en que, donada una llista que codifica les dades d’un jugador j i un any a, retorni si el jugador j tindrà el contracte en vigor l’any a, no està lesionat i no ha rebut cap oferta.
  2. Feu una funció valids(p, a) en que, donada una llista p com la mostrada en l’exemple i un any a, retorni el promig (amb una xifra decimal) dels sous dels jugadors vàlids (amb contracte, no lesionats i sense oferta).
  3. Feu una funció lesionat(p, a) en que, donada una llista p com la mostrada en l’exemple i un any a, retorni si hi ha alguna jugador lesionat que té la fitxa superior al doble de la mitjana de sous dels jugadors vàlids.

Les tres funcions valen 20, 35 i 45 punts respectivament.

Sample session
>>> p = [['Pep', 5000, False, 2016, 4, False],\
...      ['Pere', 4500, True, 2017, 3, False],\
...      ['David', 10000, True, 2015, 5, True],\
...      ['Rigoberto', 4000, False, 2014, 6, False]]
>>> valid(p[0], 2020)
True
>>> valid(p[1], 2019)
False
>>> valids(p, 2018)
4500.0
>>> lesionat(p,2017)
True
Information
Author
Gerard Escudero
Language
Catalan
Official solutions
Python
User solutions
Python