1. Avalua [3p]¶
Es vol calcular el valor real que s’obté a partir d’un valor inicial real al que s’apliquen 4 operadors aritmètics amb els seus valors. Per exemple, 0.0+5.0-1.0+2.0-3.0 dóna 3.0.
Amb aquest objectiu es demana que al mòdul avalua_modul (fitxer avalua_modul.py) la facis dues funcions següents:
Primer es demana la funció:
- avalop(v1, op, v2)¶
retorni dos valors:
un
boolque seràTruenomés si op és un delsstrsegüents:'+','-','*','/'. En cas de ser'/'també cal que v2 no sigui0.0.un
floattal que si el valor anterior ésTruealeshores serà el valor obtingut d’operarv1iv2amb l’operació aritmètica indicada a op. En cas de decimals s’aplicarà arrodoniment a 1 decimal. Si el valor anterior ésFalsealeshores seràv1.
Per exemple:
>>> avalop(0.0, '+', 5.0) (True, 5.0) >>> avalop(8.0, '/', 3.0) (True, 2.7) >>> avalop(8.0, '/', 0.0) (False, 8.0) >>> avalop(8.0, '//', 3.0) (False, 8.0)
Disposes dels tests al fitxer avalop_test.txt.
Un cop feta i validada avalop es demana que la funció:
- avalua(vlini, op1, vl1, op2, vl2, op3, vl3, op4, vl4)¶
retorni dos valors:
un
boolque seràTruesi tots els op són un dels strings següents:'+','-','*','/'iFalsealtrament.un
floattal que si el valor anterior ésFalsealeshores és retornavlinialtrament retorna el valor obtingut d’operarvliniamb les 4 operacions aritmètiques i els valor que les segueixen en l’ordre d’aparició.Per a fer aquesta funció s’ha de fer ús de la funció anterior.
Per exemple:
>>> avalua(0.0, '+', 5.0, '-', 1.0, '+', 2.0, '-', 3.0) (True, 3.0) >>> avalua(0.0, '+', 5.0, '-', 1.0, '*', 2.0, '/', 3.0) (True, 2.7) >>> avalua(0.0, '+', 0.0, '-', 0.0, '*', 0.0, '/', 0.0) (False, 0.0) >>> avalua(0.0, '+', 5.0, '-', 1.0, '*', 2.0, '//', 3.0) (False, 0.0)
Disposes dels tests al fitxer avalua_test.txt.