Skip to content
This repository was archived by the owner on Dec 29, 2024. It is now read-only.
/ onp-calculator Public archive

This project is a Reverse Polish Notation (RPN) calculator implemented in C++. It was created as a class project during the C programming course.

Notifications You must be signed in to change notification settings

bestemic/onp-calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kalkulator w odwrotnej notacji polskiej.


Przemysław Pawlik

1. Wstęp

Kalkulator wykonany jako projekt zaliczeniowy podczas przedmiotu Język C na który uczęszczałem w roku akademiskim 20/21.



1. Opis programu

Reprezentacja działania kalkulatora ONP przy użyciu operacji na stosie.
Zasada działania programu sprowadza się do kilku prostych akcji:

  1. Z wejścia std lub pliku czytamy kolejne słowa (ciągi znaków oddzielone odstępami)
  2. Jeśli słowo jest liczbą, to wrzucamy na stos, jako liczbę typu double
  3. Każde inne słowo to operator, który wykonujemy


2. Dostęne operacje

Arytmetyczne

  • add - dodawanie dwóch liczb
  • sub - odejmowanie dwóch liczb
  • mul - mnożenie dwóch liczb
  • div - dzielenie dwóch liczb
  • pow - podnoszenie liczb do potęgi
  • neg - obliczanie liczby przeciwnej
  • abs - obliczanie wartości bezwzględnej
  • sin - obliczanie sinusa
  • cos - obliczanie cosinusa
  • log - obliczanie logarytmu
  • exp - obliczanie eksponenty
  • min - wybranie mniejszego elementu
  • max - wybranie większego elementu
  • gamma - obliczanie wartości funkcji gamma
  • bc - obliczanie współczynnika dwumianowego

Na stosie

  • = - wypisanie wartości ze szczytu stosu
  • dup - duplikacja liczby na szczycie stosu
  • exch - zamiana dwóch liczb na szczycie stosu
  • pstack - wypisanie zawartości stosu

Inne

  • ? lub h lub help - wyświetlanie dostęnych komend i operatorów
  • q lub quit - zakończenie programu


3. Obsługa błędów

Błędem jest każde słowo, które nie jest liczbą, ani zdefiniowanym operatorem.

Obsługa

  • Wypisanie zawartości stosu i komunikat o błędzie
  • Zignorowanie błędnego słowa


4. Sposób uruchomienia

Aby uruchomić program należy go skompilować:
g++ main.cpp stack.cpp stack.hpp kalkulator.exe

Następnie uruchomić komendą:
./kalkulator.exe
Lub gdy podajemy dane z pliku:
./kalkulator.exe plik.txt

Przykładowe użycie kalkulatora:

7 0.5 add 
2.2 0.2 
sub mul
=

Powyższe instrukcje obliczą wartość wyrażenia (7+0.5)*(2.2-0.2)



5. Literatura

https://pl.wikipedia.org/wiki/Odwrotna_notacja_polska



6. Wymagania

C++
System operacyjny Linux

About

This project is a Reverse Polish Notation (RPN) calculator implemented in C++. It was created as a class project during the C programming course.

Resources

Stars

Watchers

Forks

Languages