Pensions X65541


Statement
 

pdf   zip

html

Les despeses d’un conjunt de pensionistes s’emmagatzemen en una llista no buida de llistes on cada subllista representa la informació d’un pensionista i està formada per l’identificador del pensionista (str), un enter que indica l’edat i una sèrie no buida de despeses mensuals enregistrades (int). En el següent exemple, la persona amb identificador ’1111A’ es diu ’Joan’ té 68 anys i tres despeses mensuals de 640, 589 i 573.

l = [['1111A','Joan',68,640,589,573],\
     ['2222D','Pepa',69,710,550,570,698,645,512],\
     ['3333J','Anna',72,530,534],\
     ['4444N','Pep',75,770,645,630,650,590,481,602]]

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ó promigDespeses(p) en que, donada una llista que codifica les dades d’un pensionista p, retorni el promig de les despeses amb dues xifres decimals.
  2. Feu una funció promigEdats(lp) en que, donada una llista lp com la mostrada en l’exemple, retorni el promig de les edats amb dues xifres decimals dels pensionistes.
  3. Feu una funció edatsExtremes(lp) en que, donada una llista lp com la mostrada en l’exemple, retorni l’edat màxima i la mínima dels pensionistes.
  4. Feu una funció sumaPromig(lp) en que, donada una llista lp com la mostrada en l’exemple, retorni la suma del promig de les despeses de tots els pensionistes de la llista amb dues xifres decimals.
  5. Feu una funció maximPromig(lp) en que, donada una llista lp com la mostrada en l’exemple, retorni del promig de les despeses més gran de tots els pensionistes de la llista.
  6. Feu una funció despesaPromig(lp) en que, donada una llista lp com la mostrada en l’exemple, retorni una altra llista amb la despesa mitjana mensual de cada persona. La llista resultant ha d’estar ordenada de forma ascendent.
  7. Feu una funció despesaPromigSuperior(lp, d) en que, donada una llista lp com la mostrada en l’exemple i una despesa d, retorni una altra llista amb l’identificador i l’edat de la primera persona que tingui una mitjana de despesa superior a d. En cas de que no n’hi hagi cap, la funció retornarà la llista buida.

Les tres primeres funcions valen 10 punts, les dues següents 15 y les dues últimes 20.

Observació

Aquest problema està basat en el problema "Pensions" creat per professors del departament de Ciències de la Computació amb docència a l’ETSEIB. Podeu consultar l’original a: http://gie.cs.upc.edu/fi/temes/llistes/Pensions.html

Sample session
>>> l = [['1111A','Joan',68,640,589,573],\
...      ['2222D','Pepa',69,710,550,570,698,645,512],\
...      ['3333J','Anna',72,530,534],\
...      ['4444N','Pep',75,770,645,630,650,590,481,602]]
>>> promigDespeses(l[0])
600.67
>>> promigEdats(l)
71.0
>>> edatsExtremes(l)
(68, 75)
>>> sumaPromig(l)
2370.84
>>> maximPromig(l)
624.0
>>> despesaPromig(l)
[532.0, 600.67, 614.17, 624.0]
>>> despesaPromigSuperior(l, 600)
['1111A', 68]
Information
Author
Gerard Escudero, Javier Farreres i professors de l'ETSEIB del departament de CS
Language
Catalan
Official solutions
Python
User solutions
Python