46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
Zadanie
|
|
|
|
Naprogramuj vedeckú kalkulačku, ktorá bude vyhodnocovať aj zložitejšie výrazy v infixnej notácii.
|
|
|
|
Kalkulačka by mala podporovať tieto operácie:
|
|
|
|
Načítanie a prácu s číslami s presnosťou min. 2 desatinné miesta.
|
|
|
|
Sčítanie, odčítanie, násobenie, delenie, zátvorky.
|
|
|
|
Sinus, cosinus, odmocnina, druhá mocnina, logaritmus.
|
|
|
|
Príklad použitia:
|
|
|
|
(2 + 3) * 2
|
|
10
|
|
(10 * 2) + (6 / 2)
|
|
23
|
|
|
|
Opis funkčnosti
|
|
|
|
Program vykonáva vyhodnotenie matematických výrazov zapísaných v infixnej notácii. Pre tento účel prevádza infixovú notáciu na postfixovú a následne vyhodnocuje výraz pomocou algoritmu "zásobníkovej" kalkulačky.
|
|
|
|
Podporované operácie zahŕňajú aritmetické operácie (+, -, *, /) a vedecké funkcie ako sinus, cosinus, odmocnina, druhá mocnina a logaritmus.
|
|
|
|
Opis riešenia
|
|
|
|
Infixový výraz je najprv konvertovaný na postfixovú notáciu.
|
|
|
|
Postfixový výraz je vyhodnotený pomocou zásobníka.
|
|
|
|
Matematické operácie sú implementované samostatne pre zabezpečenie presnosti.
|
|
|
|
Podmienky spustenia
|
|
|
|
Program beží v prostredí s podporou jazyka C a knižnice math.h.
|
|
|
|
Na kompiláciu je potrebné použiť príkaz make.
|
|
|
|
Spustenie programu sa vykoná príkazom ./kalkulacka.
|
|
|
|
Zoznam použitých zdrojov
|
|
|
|
Dokumentácia k infixovej a postfixovej notácii: https://en.wikipedia.org/wiki/Shunting-yard_algorithm
|
|
|
|
Dokumentácia k vedeckým funkciám: https://en.cppreference.com/w/c/numeric/math |