algorytm.org Algorithms Arithmetic algorithms Odwrotna Notacja Polska  
Home AlgorithmsData structuresAlgorithmics turorialPractiseDesign patternsIT Law SitemapPortal historyContributors ForumToolsWrite an articleSearch 

Odwrotna Notacja Polska
User Rating: / 7
PoorBest 
Written by Michał Knasiecki   
Tuesday, 26 July 2005 23:39
There are no translations available.

Notacja infiksowa to notacja, którą posługujemy się na co dzień. Składa się ona z dwóch operand (liczb, zmiennych) oraz operatora, który znajduje się między nimi np: 2+4 albo x*7 itd. W tak zapisanym wyrażeniu ważny jest priorytet operatora a nie jego kolejność. Oto priorytety w notacji infiksowej:
1). Nawias
2). Dodawanie i odejmowanie
3). Mnożenie i dzielenie
W Odwrotnej Notacji Polskiej jest inaczej. Nie jest ważny priorytet operatora, a jego kolejność. Jest to bardzo przydatne w realizacji translatorów, które zdejmują kolejne operandy ze stosu, wykonują operacje i wynik odkładają na stosie. 2+4 w ONP wygląda następująco: 2 4 +. Widać, że operator poprzedzony jest operandami. Uwaga! Zrozumienie algorytmu wymaga zapoznania się ze strukturą stosu. A oto sposób zamiany wyrażenia zapisanego w notacji infiksowej na ONP: Czytamy wyrażenie od lewej strony i jeżeli natrafimy w nim na:
  • liczbę lub zmienną - wypisujemy ją na wyjściu
  • nawias otwierający - kładziemy go na stosie
  • operator - zdejmujemy ze stosu i wypisujemy na wyjściu wszystkie operatory priorytecie niemniejszym niż ten wczytany. Następnie kładziemy wczytany operator na stosie
  • nawias zamykający - zdejmujemy ze stosu i wypisujemy na wyjściu wszystkie działania aż do napotkania nawiasu otwierającego, którego nie wypisujemy
Po zakończeniu wczytywania wyrażenia wypisujemy ze stosu wszystko, co na nim zostało.


.

Author Progam language Comment Download Rate
Tomasz Lubiński Ada
Implementation in Ada
/ 0
Michał Knasiecki Delphi/Pascal Borland Delphi 5
Implementation in Delphi/Pascal
/ 1
Tomasz Lubiński Java
Implementation in Java
/ 0
 
Add your implementation for this algorithm
  • Login first
File:
Progam language:
Comment:
  To be able to add your implementation, login first



Last Updated on Wednesday, 26 May 2010 22:26
 

Add comment







Danation
Donate us


RSS Channels
Articles
Implementations
Comments
Forum


Bookmarks








Poll
Czy znalazłeś na stronach www.algorytm.org to czego szukałeś?
 

www.algorytm.org (c) 2000-2010