Przypomniał mi się jeden z pierwszych programów jaki napisałem za szczeniaka. Zadaniem szkolnym było napisać "kalkulator". Ja potraktowałem zadanie bardzo dosłownie, i napisałem symulator kalkulatora naukowego, odwzorowujący dokładnie te same reakcje na sekwencje wciskanych klawiszy, włączając nawiasy i domyślną kolejność działań. Sam pomysł wydawał mi się początkowo banalnie prosty do realizacji, jednak jak przyszło do kolejności działań i nawiasów - zaczęły się schody. Zarwałem 2 nocki zanim zmusiłem mój kalkulator do prawidłowego
Bardzo dawno temu napisany i zmieniany. Chyba jakies zmianki byly robione przez innych. Ale jak na studiach zalapalem jak to dziala to musiałem napisać.
@masztan: W takim razie chciałem Ci podziękować, bo w tamtym semestrze mieliśmy implementacje ONP i przydał mi się Twój artykuł do stworzenia kalkulatorka na zajęcia :)
Cierpliwość oraz pasja nauki bijąca od tego pana jest mocno hipnotyzująca. Pomimo tego, że termin i tematyka kompletnie nie będzie mi raczej potrzebna w życiu tak wysłuchałem całego "wykładu" tylko ze względu na sposób nauczania.
@hakeryk2: on po prostu "ładnie mówi". Podobnie można było słuchać Holoubka, czy Waldorffa - mogli mówić o czymkolwiek, ale sposób mówienia - doskonały :)
Właściwie to czemu nie uczy się w szkołach RPN zamiast tradycyjnej notacji? Są jakieś wady takiego zapisu, czy to tylko wynik niechęci szkolnictwa do zmiany?
Główną wadą jest to, że notacja taka jest mniej czytelna. W infixie jest zawsze wyraźnie widoczne, że dana operacja matematyczna dotyczy tego i tamtego. W RPN operacja oraz jeden i drugi parametr mogą się znajdować wiele elementów od siebie, a w dodatku bez dokładnej analizy, co się dzieje na stosie, nawet takim wyobrażonym, ciężko w ogóle stwierdzić, czego właściwie operacja dotyczy. Śmiem twierdzić, że ten powyższy przykład @Analityk
Oczywiście, że standardowa notacja także może być trudna do odczytania, jednak zauważ, że już na potrzeby przykładu musiałeś się posiłkować jakimś skomplikowanym wzorem, który dodatkowo zaciemniłeś nadmiarowymi nawiasami. postfix przestaje być czytelny na pierwszy rzut oka już przy 3-4 operacjach.
Czego dotyczy ostatnia gwiazdka? To się okaże w trakcie obliczania
Komentarze (47)
najlepsze
Ale zmienne idą na stertę ;(
Wtedy zrobiłem to za darmo.
Dziś kazałbym sobie za to 10k.
http://4programmers.net/Algorytmy/Odwrotna_notacja_polska
Bardzo dawno temu napisany i zmieniany. Chyba jakies zmianki byly robione przez innych. Ale jak na studiach zalapalem jak to dziala to musiałem napisać.
Kiedyś nawet za jego pomocą zrobiłem całkowanie numeryczne f(x) metodą Simpsona... ale to stare dzieje.
Lubię takie wykopy.
Dlaczego palona żywcem czarownica prosi o dołożenie do ognia?
http://pl.wikipedia.org/wiki/HP-48
NIE MA na świecie lepszego kalkulatora....
@zaqpy: do dziś korzystam z HP48... ;) Te klawisze... Teraz się takich nie robi...
Główną wadą jest to, że notacja taka jest mniej czytelna. W infixie jest zawsze wyraźnie widoczne, że dana operacja matematyczna dotyczy tego i tamtego. W RPN operacja oraz jeden i drugi parametr mogą się znajdować wiele elementów od siebie, a w dodatku bez dokładnej analizy, co się dzieje na stosie, nawet takim wyobrażonym, ciężko w ogóle stwierdzić, czego właściwie operacja dotyczy. Śmiem twierdzić, że ten powyższy przykład @Analityk
Oczywiście, że standardowa notacja także może być trudna do odczytania, jednak zauważ, że już na potrzeby przykładu musiałeś się posiłkować jakimś skomplikowanym wzorem, który dodatkowo zaciemniłeś nadmiarowymi nawiasami. postfix przestaje być czytelny na pierwszy rzut oka już przy 3-4 operacjach.