Przejdź do treści głównej
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):

  1. Czytaj symbole od lewej do prawej.
  2. Jeśli symbol to liczba, połóż ją na stos (push).
  3. 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.
  4. 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.