usaa25/sk2
2026-01-27 12:32:27 +01:00
..
calculator.c refresh 2026-01-27 12:32:27 +01:00
calculator.exe refresh 2026-01-25 23:20:37 +01:00
calculator.h refresh 2026-01-25 23:20:37 +01:00
calculator.o refresh 2026-01-25 23:20:37 +01:00
main.c refresh 2026-01-25 23:20:37 +01:00
main.o refresh 2026-01-25 23:20:37 +01:00
Makefile refresh 2026-01-25 23:20:37 +01:00
README.md refresh 2026-01-25 23:20:37 +01:00

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;