2.9 KiB
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í.
Podmienky za ktorých funguje
Pomocou príkazu make môžete jednoducho skompilovať všetky herné súbory, pretože súbor Makefile sa používa na proces kompilácie kódu:
make
Ak chcete spustiť program:
./calculator
Ak potrebujete len jednoduché operácie, ako napríklad "+, -, *, /, ^", stlačte v konfigurácii číslo 1: Ak potrebujete vypočítať niečo zložitejšie, napríklad "sin, cos, log, log10, sqrt", vyberte možnosť 2. Ak ste už unavení z výpočtov alebo ste len náhodne spustili kalkulačku, môžete vybrať 3 konfigurácie a ukončiť ju ;)
Select configuration:
1. Simple expressions
2. Higher expressions
3. Exit
Enter your choice: 1
Enter the equation:
Zoznam použitých zdrojov
Táto práca ma inšpirovala k rozdeleniu podľa konfigurácií - https://github.com/hariprasath112/scientific-calculator?tab=readme-ov-file Unarny operator minus - https://www.scaler.com/topics/unary-operator-in-c/ Sqrt - https://www.upgrad.com/tutorials/software-engineering/c-tutorial/sqrt-in-c/#:~:text=In%20C%20programming%20the%20square,h%3E%20header%20file.