usaa25/sk2/README.md
2026-01-25 23:20:37 +01:00

56 lines
1.4 KiB
Markdown

# Vedecká kalkulačka (Scientific Calculator)
## Popis projektu
Tento projekt implementuje jednoduchú vedeckú kalkulačku v jazyku C.
Kalkulačka spracováva matematické výrazy zapísané v **infixnej notácii** a vyhodnocuje ich pomocou **rekurzívneho syntaktického analyzátora**.
Program podporuje základné aritmetické operácie, zátvorky a vybrané matematické funkcie zo štandardnej knižnice jazyka C.
## Podporované operácie
- práca s reálnymi číslami (`double`) s presnosťou minimálne **2 desatinné miesta**
- sčítanie (`+`)
- odčítanie (`-`)
- násobenie (`*`)
- delenie (`/`)
- zátvorky (`(`, `)`)
- goniometrické funkcie:
- `sin(x)`
- `cos(x)`
- odmocnina:
- `sqrt(x)`
- druhá mocnina (a všeobecná mocnina):
- `pow(x, y)`
(druhá mocnina sa vypočíta ako `pow(x, 2)`)
- logaritmus:
- `log(x)` (prirodzený logaritmus)
## Spôsob riešenia
Vyhodnocovanie výrazov je realizované **bez použitia zásobníkov**.
Použitý je **rekurzívny zostupný parser**, ktorý rešpektuje prioritu operátorov:
- výrazy (`+`, `-`)
- termy (`*`, `/`)
- faktory (čísla, zátvorky, funkcie)
Tento prístup umožňuje prirodzené spracovanie infixnej notácie a zátvoriek.
## Kompilácia
Projekt sa kompiluje pomocou nástroja `make`.
V adresári projektu spusti:
make.
## Priklady použitia
1) Zadaj vyraz:
(2 + 3) * 2
10.00;
2) Zadaj vyraz:
(10 * 2) + (6 / 2)
23.00;
3) Zadaj vyraz:
pow(2, 3) + sqrt(16)
12.00;