Przemysław Pawlik
Kalkulator wykonany jako projekt zaliczeniowy podczas przedmiotu Język C na który uczęszczałem w roku akademiskim 20/21.
Reprezentacja działania kalkulatora ONP przy użyciu operacji na stosie.
Zasada działania programu sprowadza się do kilku prostych akcji:
- Z wejścia std lub pliku czytamy kolejne słowa (ciągi znaków oddzielone odstępami)
- Jeśli słowo jest liczbą, to wrzucamy na stos, jako liczbę typu
double
- Każde inne słowo to operator, który wykonujemy
- 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
- = - 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
- ? lub h lub help - wyświetlanie dostęnych komend i operatorów
- q lub quit - zakończenie programu
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
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)
https://pl.wikipedia.org/wiki/Odwrotna_notacja_polska
C++
System operacyjny Linux