42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# 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
|
|
|
|
1. isOperator
|
|
Nastavenie indexu vrcholu na -1 (prázdny zásobník).
|
|
|
|
1. precedence
|
|
Funkcia vracia prioritu operátora.
|
|
|
|
1. applyOperator
|
|
Funkcia vykoná matematickú operáciu na dvoch operandoch podľa zadaného operátora.
|
|
|
|
1. Výpočet výrazu (evaluateExpression)
|
|
Hlavná funkcia programu, ktorá vyhodnocuje matematický výraz odovzdaný ako reťazec.
|
|
|
|
1. 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í.
|
|
|
|
|
|
## Podmienky za ktorých funguje
|
|
|
|
|
|
|