usaa24/sk2
2025-01-31 19:14:04 +01:00
..
calculator.c skuska2 2025-01-31 19:14:04 +01:00
calculator.h skuska2 2025-01-31 19:14:04 +01:00
main.c skuska2 2025-01-31 19:14:04 +01:00
Makefile skuska2 2025-01-31 19:14:04 +01:00
README.md skuska2 2025-01-31 19:14:04 +01:00

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