• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odwrotna Notacja Polska

Object Storage Arubacloud
0 głosów
2,204 wizyt
pytanie zadane 21 października 2018 w Matematyka, fizyka, logika przez Szymon137 Nowicjusz (180 p.)
Przejrzałem już dosyć dużo różnych stron i filmików na youtube ale dalej nie rozumiem ONP. Macie jakieś dobre wytłumaczenie tego zagadnienia?

2 odpowiedzi

+2 głosów
odpowiedź 21 października 2018 przez Chess Szeryf (76,710 p.)
edycja 21 października 2018 przez Chess

Odwrotna notacja polska:

Najpierw są jakieś liczby, a później jest znak, który mówi nam, jakie jest wykonywane działanie.

Zapis, którego używamy na co dzień:

2 + 1 + 2 * 3

Zapis odwrotnej notacji polskiej:

2 1 + 2 3 * +

Jeśli są obok siebie dwa operatory, np. jak w tym przypadku * +, to ...

Pierwszy operator (*), który stoi najbliżej liczb stojących po lewo wykonuje działanie, czyli 2 * 3. Następnie dodawane jest wyrażenie, które stoi na samym początku, czyli 2 + 1. Końcowy rezultat, to 9.  

(6/2)-3+5+(1*3)

6 2 / 3 5 + - 1 3 * +

reverse polish notation

Dzięki tej grafice, łatwo powinieneś dostrzec analogię. To co jest z prawej ma być z lewej strony, a to co jest z lewej ma być z prawej strony. 

Gdybyś np. programował w Common Lisp, to byś zauważył, że to jest coś podobnego z tym operacjami matematycznymi.

Przykład z Common Lisp (notacja polska):

W Common Lisp trzeba używać nawiasów, które pomagają zrozumieć i zobaczyć jak powinno obliczać się takie wyrażenia matematyczne.

(+ 4 2 (* 1 0) (- 10 3)) => (+ 4 2 0 7) => 13

Najpierw obliczyć trzeba najbardziej zagnieżdżone nawiasy, a na końcu obliczyć całe wyrażenie.

komentarz 21 października 2018 przez Hiskiel Pasjonat (22,830 p.)
Na kija Polacy stworzyli tego potwora?
komentarz 21 października 2018 przez Chess Szeryf (76,710 p.)

ONP bardzo ułatwia wykonywanie na komputerze obliczeń z nawiasami i zachowaniem kolejności działań. Zarówno algorytm konwersji notacji konwencjonalnej (infiksowej) na odwrotną notację polską (postfiksową), jak i algorytm obliczania wartości wyrażenia danego w ONP są bardzo proste i wykorzystują stos.

Źródło: Wikipedia.

ONP - Odwrotna Notacja Polska

komentarz 21 października 2018 przez criss Mędrzec (172,590 p.)
@Hiskiel
Bo jeśli założymy, że parser dostaje wyrażenie w takiej postaci, to napisanie parsera staje się dużo prostsze. Dzięki ONP (lub RPN w ang.) pisząc parser nie musimy brać pod uwagę ani nawiasów ani kolejności wykonywania działań. A w zamian wystarczy tylko napisać konwerter wyrażeń w tradycyjnej postaci na postać RPN.
0 głosów
odpowiedź 21 października 2018 przez VirtualMember Pasjonat (15,790 p.)
Przyrównaj działanie ONP do działania na stosie. Moim zdaniem najlepiej odzwierciedla jego naturę.

Podobne pytania

0 głosów
0 odpowiedzi 375 wizyt
0 głosów
0 odpowiedzi 518 wizyt
0 głosów
0 odpowiedzi 1,113 wizyt
pytanie zadane 17 marca 2020 w C i C++ przez Padoski Użytkownik (990 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...