usaa23/sk2/README.md

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

  1. isOperator Nastavenie indexu vrcholu na -1 (prázdny zásobník).

  2. precedence Funkcia vracia prioritu operátora.

  3. applyOperator Funkcia vykoná matematickú operáciu na dvoch operandoch podľa zadaného operátora.

  4. Výpočet výrazu (evaluateExpression) Hlavná funkcia programu, ktorá vyhodnocuje matematický výraz odovzdaný ako reťazec.

  5. 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.