ONP - Odwrotna Notacja Polska, algorytm program matematyka

Witam,

W tym post-cie wytłumaczę Wam jak napisać program (algorytm) na Odwrotną Notacje Polską.
Odwrotna Notacja Polska - to zapis wyrażeń arytmetycznych bez nawiasów wraz z kolejnością wykonywania działań.
Jest to przydatne w przypadku gdy w programie komputerowym wpisujemy string (napis) wyrażenia arytmetycznego. Program nie potrafi wyliczyć takiego wyrażenia, gdyż nie zna kolejności wykonywania działań. Dopiero po zamianie na ONP - otrzymany string (napis), program sukcesywnie przetwarza i wylicza wynik.

Przykład:
(2+3)*5 = ONP (2 3 + 5 * ); - program bierze znak "+" i 2 oraz 3, następnie wynik 5, mnoży (drugi znak "*") z 5.
2+2*(3-2) = ONP (2 2 3 2 - * + ); - program pobiera ze stosu char "-" i wykonuje działanie 3-2, następnie pobiera ze stosu char "*" i 3-2=1 mnoży z 2+2 ("+" - ostatni char na stosie).
Uwaga - przed zamianą na ONP program parsuje string-a i sprawdza, czy wyrażenie arytmetyczne jest poprawne.
Dopuszczalne znaki ["+", "-", "*", "/", "(", ")", "," i wszystkie cyfry].


Odwrotna Notacja Polska:
Więcej tutaj

Dynamiczna Struktura Danych - STOS:
Więcej tutaj
 


Źródła - C++ (Odwrotna Notacja Polska - ONP):


Opis:

1. - główna funkcja do ONP, posiłkuje się funkcjami pomocniczymi (w tym funkcją STOS implementującą strukturę dynamiczną STOS) - tworzy ONP;
2. - funkcja pomocnicza, pobiera (cyfry), ze string-a (napisu) wprowadzonego przez użytkownika programu;
3. - funkcja pomocnicza;


Wszystkie pliki z źródłami (w tym exe do uruchomienia): Algorytm z programem
Sam algorytm: Algorytm program