INF.04Algorytmika i Struktury Danych
Odwrotna Notacja Polska (ONP / RPN)
Beznawiasowy sposób zapisu wyrażeń arytmetycznych, w którym symbol operatora umieszczany jest po swoich operandach (zapis postfiksowy).
Koncepcja ONP:
Twórcą notacji był polski logik Jan Łukasiewicz. ONP eliminuje konieczność stosowania nawiasów oraz reguł priorytetu operatorów – kolejność obliczeń wynika wprost z pozycji operatorów.
Przykłady konwersji (zapis infiksowy -> ONP):
2 + 3→2 3 +(2 + 3) * 4→2 3 + 4 *5 + ((1 + 2) * 4) - 3→5 1 2 + 4 * + 3 -
Algorytm obliczania wartości ONP (przy użyciu STOSU):
- Czytaj symbole od lewej do prawej.
- Jeśli symbol to liczba, połóż ją na stos (
push). - Jeśli symbol to operator (np.
+,*):- Zdejmij dwa elementy ze stosu (
b = pop(),a = pop()). - Wykonaj operację:
wynik = a [operator] b(uwaga na kolejność przy odejmowaniu i dzieleniu!). - Połóż wynik z powrotem na stos.
- Zdejmij dwa elementy ze stosu (
- Na koniec jedyny element na stosie to ostateczny wynik.
Chcesz sprawdzić to pojęcie w praktyce?
Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Odwrotna Notacja Polska (ONP / RPN) lub rozpocznij trening.