Zkouška 26.1.2018

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zkouška 26.1.2018

Zkouška 26.1.2018

od Host » 29. 1. 2018 13:35

Měli jsme naimplementovat postfixní kalkulačku, která navíc podporovala multinomy (např. x^2 + xy + z^3, zkrátka víc proměnných).

V postfixním zápise se například 1 + 1 zapíše jako 1 1 +. Ideální implementace je ukládat výrazy na stack.

Na vstupu mohli být (oddělené alespoň jedním whitespacem) následující výrazy:
číslo (kladné i záporné, stačila velikost int) = uloží se na vrchol stacku
proměnná (string skládající se jen z písmen) = uloží se na vrchol stacku
+ = sečíst poslední dva výrazy a na stacku je nahradit jejich součtem
- = odečíst poslední dva výrazy a na stacku je nahradit jejich rozdílem
* = vynásobit poslední dva výrazy a na stacku je nahradit jejich součinem
? = vypsat poslední výraz na stacku
# = dropnout poslední výraz na stacku
^číslo = umocnit poslední výraz na zadané číslo (stačilo implementovat cyklem)
@proměnná = derivace posledního výrazu podle zadané proměnné
=proměnná = dosadit za proměnnou v předposledním výrazu poslední výraz

Z posledních tří stačilo implementovat jenom dva. Zadávající napověděl, že výrazy je nejlepší ukládat jako mapu <term, koeficient termu> a term zase jako mapu <proměnná, její mocnina>. Stejné termy se samozřejmě měli sečíst.

Dával 0-30 bodů za základní funkce, dalších 0-20 bodů za poslední tři složitější funkce a navíc 0-10 bodů za hezký kód (const reference a tak)

Nahoru