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].
Ź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
Sam algorytm: Algorytm program
Brak komentarzy - Zabacz wszystkie komentarze.
Prześlij komentarz