56 lines
1.4 KiB
Markdown
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; |