Search
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.
calculator.py
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
subtraction
multiplication
division
modulo
x >= y
y > 0
secondPower
power
float
secondRadix
x > 0
magic
control
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 vyhodí výjímku ValueError('This operation is not supported for given input parameters').
ValueError('This operation is not supported for given input parameters')
substraction(a, b)
(a - b)
(b - a)
Na vstupu přijímá 4 parametry x, y, z, k. Funkce nejprve spočítá x + k = l, y + z = m a pote vypočte ((l / m) + 1) = n. Hodnotu v proměnné n vrátí na výstupu.
x
y
z
k
x + k = l
y + z = m
((l / m) + 1) = n
n
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í:
a
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('ADDITION', 2,3,4,5)
addition(2,3)
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('SUBTRACTION', 2,3,4,5)
subtraction(2,3)
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')
control('DIVISION', 1,0,4,5)
division(1,0)
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ů.