2. Concurs (3,5 punts)

En un concurs es realitzen una sèrie de preguntes als concursants amb un temps fix que es puntuen de forma diferent segons el total de preguntes contestades, els encerts i les errades.

Dissenya la funció concurs que donats dos enters amb el nombre de preguntes contestades i el nombre d’encerts, retorna un float amb el total de punts obtinguts pel concursant a partir de les següents normes:

  • Si el nombre de preguntes contestades és inferior a 15, cada encert compta 3 punts; en cas contrari cada encert compta 5 punts.

  • Si el nombre de preguntes contestades és mes petit que 10, cada errada resta 0,5 punts.

  • Si el nombre de preguntes contestades està entre 10 i 20, tots dos inclosos, cada errada resta 0,75 punts.

  • Si el nombre de preguntes contestades és superior a 20, cada errada resta 1 punt. En aquest cas, a més, si el percentatge d’errades respecte el nombre de preguntes contestades és inferior al 50%, s’afegeixen 20 punts extra.

Els següents doctests mostren exemples del que ha de fer la funció:

>>> round(concurs(10,6),1)
15.0
>>> round(concurs(22,8),1)
26.0
>>> round(concurs(14,11),2)
30.75
>>> round(concurs(14,2),1)
-3.0

Disposeu de tests al fitxer test-concurs.txt.

Deseu la funció al fitxer concurs.py i pugeu-lo a Atenea.

Disposeu d’una solució al fitxer concurs.py