| .. | ||
| calculator.c | ||
| calculator.exe | ||
| calculator.h | ||
| calculator.o | ||
| main.c | ||
| main.o | ||
| Makefile | ||
| README.md | ||
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 akopow(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
- Zadaj vyraz: (2 + 3) * 2 10.00;
- Zadaj vyraz: (10 * 2) + (6 / 2) 23.00;
- Zadaj vyraz: pow(2, 3) + sqrt(16) 12.00;