Kalkulatory RPN dla Linuksa
ArticleCategory: Hardware
Applications
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido
Socher
en to pl Mateusz Mrozewski
AboutTheAuthor:[A small biography about the author]
Moim pierwszym kalkulatorem RPN był HP15c i to była miłość od pierwszego wejrzenia.
Abstract:
RPN to skrót od Reverse Polish Notatnion (od tłum. ONP - Odwrotna Notacja
Polska). RNP została stworzona w 1920 roku przez Jana Łukasiewicza jako
metoda do zapisu wyrażeń matematycznych bez używania nawiasów i klamr.
Nauczenie się RPN zajmuje kilka minut, ale wkrótce zauważysz, że ta metoda
zapisu jest lepsza do algebraicznego formatu.
ArticleIllustration:
ArticleBody:
Wprowadzenie
Kieszonkowe kalkulatory RPN stały się popularne dzięki kalkulatorom
HP. HP użyło tej metody zapisu już w swoim pierwszym kalkulatorze w
1968 roku. Jeśli poszukasz w internecie to odkryjesz, że są nawet
fankluby tych kalkulatorów. Na końcu artykułu zamieściłem kilka
dobrych odnośników. Większość z tych kalkulatorów ma dziś znaczenie
kolekcjonerskie i jest sprzedawanych za wiele więcej, niż były warte
oryginalnie.
W tym artykule przedstawimy kilka kalkulatorów RPN dostępnych dla
Linuxa. Omówimy nie tylko emulatory HP, ale także kalkulatoru RPN
całkowicie niezależne od HP.
Co to jest RPN? Dlaczego RPN?
Kalkulatory RPN uzywają stosu i wszystkie matematyczne operacje są
wykonywane natychmiast na niższym poziomie stosu. Stos jest używany jako
pamięć do zachowania wyników, które będą potrzebne do obliczenia
dalszej części wyrażenia. Dlatego właśnie nie potrzeba nawiasów w
kalkulatorach RPN. Najpierw wpisuje się liczby, odsyła je na stos, a potem
mówi, co się chce z nimi zrobić. Np. aby obliczyć:
(( 3 + 1)^2 + 1) * 4
trzeba wpisać:
3 enter
1 + (od razu widać wynik: 4)
x^2 (od razu widać wynik: 16)
1+ (od razu widać wynik: 17)
4* (ostateczny wynik: 68)
Aby obliczyć to wyrażenie potrzeba 9 przyciśnięć klawisza i można zobaczyć
wszystkie pośrednie wyniki. Robi się to tak samo, jak przy liczeniu "w
myśli" bez kalkulatora. Innymi słowy, kalkulator jest dużo bardziej
"naturalny". Pracuje w ten sam sposób jak nasz "mózg".
Gdyby porównać do to kalkulatora algebraicznego, potrzeba 12
naciśnięć w tym wyrażeniu i nie można zobaczyć wyników pośrednich.
Zaletami są:
- RPN oszczędza czas i naciśnięcia klawiszy. Nie trzeba się martwić o
nawiasy podczas obliczeń. Cały proces liczenia jest podobny do sposobu, w
jakim się licz na papierze.
- Pośrednie wyniki pozwalają użytkownikowi na sprawdzenie wyników i
poprawienie błędów o wiele łatwiej. Łatwiej jest kontrolować przebieg
obliczeń. Użytkownik określa priorytet operatorów.
- Ponieważ podwyrażenia są obliczane w miarę jak są wpisywane, błędy
wprowadzenia są bardziej oczywiste przy RPN. W kalkulatorach
algebraicznych, opuszczenie nawiasu otwierającego może prowadzić do błędu
obliczeń, który ujawni się dużo później, dopiero gdy całe wyrażenie
zostanie obliczone.
Kalkulatory
Zacznijmy z kilkoma prostymi kalkulatorami, które możena przetestować w
przeglądarce podczas czytania artykułu, a poźniej przedstawię mocniejsze
"maszyny".
rpnjcalc
Ten kalkulator używa Javascript. To mój własny projekt i działa w
nowoczesnych (!) przeglądarkach (nie działa prawidłowo w operze 5/6,
netscape 4, konqeror). Jest inny id wielu innych kalkulatorów javascript,
ponieważ można używać także klawiatury do wpisywania liczb i podstawowych
operacji matematycznych. Poprostu kliknij tutaj i
przetestuj go
hp-35
Ten kalkulator używa Javascript także, ale kładzie większy nacisk na
wygląd zbliżony do prawdziwego kalkulatora kieszonkowego HP-35. Można go
przetestować tutaj
Jeśli naprawdę chcesz go używać, wtedy polecam pobrać plik zip,
ponieważ używa on obrazków gif i odpowiedź jest o wiele szybsza, gdy
używasz go lokalnie.
Należy również zauważyć, że ten kalkulator nie dostarcza takiej samej
funkcjonalności jak prawdziwy HP35. Np. może on wykonywać obliczenia
trygonometryczne w zakresie stopni (0-360).
Nazwa: | hp-35 |
Strona domowa: | Nieznana, pobrany z www.hpmuseum.org.
Pobierz tutaj:hp-35.zip |
Licencja: | GPL |
dc
Ten kalkulator jest starą komendą Uniksa. Znajdziesz go nawet na
najstarszych systemach uniksowych. Może wykonać tylko podstawową
arytmetykę, ale radzi sobie z bardzo długimi liczbami. Aby go uruchomić
wpisujesz dc, następnie wpisujesz liczbę, a po niej literę "k" (np. 6k i
wciśnij enter). To ustawia precyzję. Teraz możesz wykonać obliczenia
(+-*/) i wypisać najniższy poziom stosu wpisując "p". Kończysz pracę
wciskając ctrl-d.
Nazwa: | dc (desk calculator) |
Strona domowa: | Część każdego systemu uniksowego. Pod
Linuksem paczka zawierająca dc nazywa się bc (od tłum. w Debianie woody bc
i dc to osobne paczki i osobne kalkulatory !!!) |
Licencja: | zazwyczaj taka sama jak licencja Uniksa |
vc.pl
Ten kalkulator jest napisany w Perlu. Jest to interesująca implementacja,
ponieważ jest to kalkulator wektorowy. Możesz go oczywiście użyć do
normalnej artymetyki, ponieważ pojedyncza liczba jest wektorem jedno
wymiarowym. Zawiera on zintegrowany system pomocy (po prostu wpisz help).
Instalacja jest łatwa ponieważ wykorzystuje on samodzielny moduł perla.
x48
Ten kalkulator jest emulatorem HP-48. Oznacza to, że możesz uruchomić na
nim prawdziwy kod z HP. Ten kalkulator poprostu implementuje emulator.
Musisz załadować prawdziwy ROM HP-48. x48 ma licencję GPL, a ROM
oczywiście jest pod prawami autorskimi HP. Oryginalny kalkulator hp48 nie
jest już produkowany przez HP, więć HP pozwala na pobranie obrazów ROM od
roku 2000.
Notatka: Miło jest mieć taki kalkulator na ekrenia monitora, ale to nadal
nie jest idealny zamiennik dla oryginalnego HP-48, ponieważ x48 ma nieznut
dobry interfejs klawiatury. Dlatego przez większość czasu będziesz
prawdopodobnie korzystał z myszki, co jest raczej powolne.
Ponieważ x48 jest emulatorem, potrafi on wykonać wszystkie operacje
dokładnie jak HP-48. Najnowsza wersja jaką znalazłem to 0.4, która już ma
kilka lat, jednakże pracuje bez żadnych problemów. Wersja 0.4 potrzebuje
małej łatki do skompilowania na współczesnym Linuksie. Znajdziesz
oryginalną instrukcję, kilka obrazów ROM, łatkę i dodatkowe instrukcje na
"szczegółowej stronie x48" poniżej.
hp67
Ten kalkulator ma pełną funkcjonalność prawdziwego hp67, ale został
całkowicie przepisany i jest niezależny od kodu hp67. To nie jest
emulator. Interfejs wygląda troche prosto (ncurses), ale funkcjonalność
jest bardzo dobra. Dostarczany jest z doskonałą dokumentacją w formie
stron podręcznika systemowego (zobacz odnośniki poniżej). Można go nawet
zaprogramować jak prawdziwy hp67. Aby zacząć go programować wciskasz
"prog", a następnie wpisujesz program, zaczynający się od label nazwa_etykiety, a
opuszczasz tryb programowania koszystając z "immed". Aby wykonać program
używasz "run nazwa_etykiety". Tutaj jest mały przykład. Mój przykład jest trochę
krótki, gdyż impelentuje tylko podnoszenie do kwadratu, ale pokaże Ci jak
programować hp67:
prog (rozpoczęcie trybu programowania)
label myprg
ENTER
*
rtn
immed (zakończenie tryby programowanie)
Możesz teraz wpisać "run myprg" aby wykonać x^2.
kalc
kalc jest również uruchamiany z linii poleceń. Wykorzystuje bibliotekę
readline i ma kilka funkcji "uzupełniania komend". Pracuje z liczbami
rzeczywistymi i zespolonymi, liczbami całkowitymi nieograniczonego
rozmiaru, z liczbami rzeczywistymi dowolnej precyzji. Dokumentacja jest
również bardzo dobra (zobacz pliki pdf poniżej).
dcalc
Ten kalkulator jest również oparty o bibliotekę ncurses i jest uruchamiany
na konsoli. Nie jest programowalny jak hp67, ale jest dobry do konwersji
liczb z notacji szesnastkowej na binarną i dziesiętną.
rpncalc
Ten kalkulator jest także przeznaczony do uruchomienia na konsoli, jednak
nie jest opary o bibliotekę ncurses. W związku z tym jest bardzo podobny
do "dc". Implementuje on funkcjonalność HP28. Jest jednakże o wiele bardziej
zaawansowany niż "dc". Obsługuje on liczby zespolone, wektory i macierze.
rpncalc jest częścią Debiana.
gdcalc
Jest to całkiem sympatyczny kalkulator z graficznym interfejsem
użytkownika gtk. Można go skonfigurować zarówno jako kalkulator RPN i
algebraiczny. Oferuje on 4 tryby: naukowy, finansowy, statystyczny i tryb
konwersji liczb nazywany trybem programowania. Ten tryb jednak nie ma nic
wspólnego z programowaniem kalkulatora (jak x48 czy hp67). Oferuje on
wszystko, czego można wymagać od kalkulatora biurkowego.
grpn
Ten kalkulator RPN jest również oparty o interfejs użytkownika gtk.
Oferuje on podstawowe operacje algebraiczne i trygonometryczne.
galculator
Ten kalkulator jest funkcjonalnie bardzo podobny do gdcalc. Możesz go
skonfigurować do pracy w trybie RPN i algebraicznym. Umożliwia on
konwersją binarny/szesnastkowy/dziesiętny i posiada wszystkie podstawowe
funkcje naukowe.
Jednakże używa on najnowszych bibliotek gtk (gtk 2.2). Pojawiają się w
związku z tym problem z instalacją na starszych Linuksach. W zamian za to
jest dobrze zaprojektowany i posiada przyjemy interfejs użytkownika.
Aby korzystać konwersji jednostek musisz zainstalować komendę units(1)
(ftp://ftp.gnu.org/gnu/units/, cześć większości dystrybucji Linuksa).
calcoo
Jest to stary kalkulator. Można go używać w trybie RPN i algebraicznym.
Jest dobry do podstawowej algebry i trygonometrii.
Kalk
To nie jest podstawowy (ale darmowy) kalkulator RPN dla palmtopów.
Palmtopy nie korzystają z Linuksa, ale prezentuję ten kalkulator, gdyż
jest on dostępny na licencji GPL (żadkość dla oprogramowania palmtopów).
GCalc
To nie jest kalkulator RPN, ale jest on nadal bardzo użyteczny. Jest to
graficzny kalkulator online oparty o jave. Aby z niego skorzystać,
potrzeba wtyczki java dla mozilli lub netscape'a, część paczki jre z
blackdown.org. Można od razu rysować wykresy w przeglądarce obsługującej
jave.
Wnioski
Jak można zauważyć, instnieją kalkulatory RPN zaspokajające wszytskie
gusty. Prawdopodobnie jest dużo więcej kalkulatorów RPN, ale te wymienione
powyżej są na licencji GPL.
Odnośniki
- Strona pobierania, wersje
kalkulatorów z czasu pisania artykułu
- obrazy ROM HP48,
pobrane z hpcalc.org
- http://www.hpmuseum.org/, museum
online kalkulatorów HP
- area48.com/history.html,
historia słynnego kalkulatora HP48
- www.transnull.com/hp48.html,
FAQ i obrazy ROM dla HP48
- www.hp-collection.org/hewlettpackard.htm,
prywatna kolekcja prawie wszystkich kalkulatorów HP, strona w języku
niemieckim
- www.limov.com/rcl20/, RCL 20:
People, Dreams & HP Calculators. Książka (bez wersji
elektronicznej) o kalkulatorach HP41
- www.finseth.com/~fin/hpdata.html,
baza danych HP, szczegóły na temat wszystkich kalkulatorów HP
- www.hp.com/calculators/,
oficjalna strona kalkulatorów HP (wszystkie powyższe strony są
prywatną inicjatywą fanów kalkulatorów HP). HP już nie udostępnia
zbyt wiele. Raczje smutna strona.