| .. | ||
| calculator.c | ||
| calculator.h | ||
| main.c | ||
| Makefile | ||
| README.md | ||
Domáca skúška - Opravný termín - Kalkulačka
Naprogramuj vedeckú kalkulačku. Kalkulačka by mala 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.
Strucny popis funkčnosti
-
isOperator Nastavenie indexu vrcholu na -1 (prázdny zásobník).
-
precedence Funkcia vracia prioritu operátora.
-
applyOperator Funkcia vykoná matematickú operáciu na dvoch operandoch podľa zadaného operátora.
-
Výpočet výrazu (evaluateExpression) Hlavná funkcia programu, ktorá vyhodnocuje matematický výraz odovzdaný ako reťazec.
-
Konfigurácia operátorov a funkcií (evaluateExpression) Funkcia prijíma konfiguračný argument, ktorý definuje podporované operátory a funkcie:
Konfigurácia 1: Podporované sú len základné aritmetické operácie. Konfigurácia 2: Podporované sú aj ďalšie matematické funkcie (sínus, kosínus, logaritmy, odmocniny).
Strucny popis riešenia
Tento kód je jednoduchá kalkulačka schopná počítať matematické výrazy zapísané v infixovej notácii. Podporuje základné aritmetické operácie (+, -, *, /), mocniny (^), trigonometrické funkcie (sin, cos), logaritmy (log, log10) a odmocniny (sqrt). Kód implementuje zásobník na ukladanie operandov a operátorov, ako aj funkcie na inicializáciu zásobníka, pridávanie a odstraňovanie prvkov zo zásobníka. Kód tiež rieši prípady chýb, ako je delenie nulou, záporné argumenty pre niektoré funkcie a neplatné znaky vo výraze. Používateľ môže zadať konfiguráciu na zapnutie alebo vypnutie podpory určitých operácií a funkcií.