Vaším třetím úkolem bude vytvoření plnohodnotné kalkulačky. Soubor se kalkulačkou nazvěte: calculator.py
a nahrajte do Odevzdávacího systému.
Vytvořte soubor calculator.py
, v kterém naimplementujte následující funkce/operace (v závorce název funkce a počet parametrů, která funkce potřebuje):
addition
2)
subtraction
2)
multiplication
2)
division
2)
modulo
2, v našem případě mohou být použita pouze varianty při kterých platí x >= y
a y > 0
)
secondPower
1)
power
2, pořadí: mocněnec, mocnitel, v našem případě mohou být použiti pouze kladní mocnitelé (nula je kladná)) - vracejte typ float
.
secondRadix
1, odmocninu lze provést pouze z kladného celého čísla splňující: x > 0
)
magic
4) - operace bude vysvětlena
control
5) - funkce bude vysvětlena
Každá z výše uvedených funkcí vrací na výstupu výpočet. V případě, že výpočet nelze provést tak funkce vyvolá výjímku ValueError('This operation is not supported for given input parameters')
.
subtraction(a, b)
provádí (a - b)
a ne (b - a)
).
Na vstupu přijímá 4 parametry $x$, $y$, $z$ a $k$.
Funkce nejprve spočítá $x + k = l$, pak $y + z = m$ a poté vypočte $((l / m) + 1) = n$.
Hodnotu v proměnné $n$ vrátí na výstupu.
Na vstupu přijímá 5 parametrů: a
,x
,y
,z
a k
, na výstupu je výsledek konkrétní operace. Funkce vždy obdrží v parametru a
textovou hodnotu na jejím základě se rozhodne co za funkci zavolat. Mapování je následující:
addition()
subtraction()
multiplication()
division()
modulo()
power()
secondRadix()
magic()
Parametry x
,y
,z
a k
se poté předají konkrétní funkci v pořadí v jakém byly obdrženy. Pokud funkce vyžaduje pouze jeden parametr předá se jí proměnná x
, pokud dva parametry předají se jí x
a y
, pokud čtyři parametry, předají se ji x
,y
,z
a k
. Příklad volání:
control('ADDITION', 2,3,4,5)
zavolá funkci addition(2,3)
, která spočítá 2+3 = 5. Funkce control tedy vrátí hodnotu 5.
control('SUBTRACTION', 2,3,4,5)
zavolá funkci subtraction(2,3)
, která spočítá 2-3 = -1. Funkce control tedy vrátí hodnotu -1.
control('DIVISION', 1,0,4,5)
zavolá funkci division(1,0)
, která zjistí, že dělení nelze provést. Funkce tedy vyvolá výjimku dle zadání: ValueError('This operation is not supported for given input parameters')
Funkce control podporuje pouze funkce vypsané v mapování - pokud by chtěl uživatel volat jakoukoliv jinou funkce tak systém vyvolá opět výjimku: ValueError('This operation is not supported for given input parameters')
Za úlohu lze získat maximálně 2 body.
Aby jste nemuseli chodit na cvičení, v kterém je tato úloha zadána, tak je potřeba úlohu odevzdat před cvičením a mít za ní plný počet bodů.