Skip to content

zeppel13/rpn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rpn

RPN is a small reverse polish (programmable) calculator. It has 4 Stack levels and was written by myself in 2015. I use it every day to crunch some numbers on the commandline. You can invoke RPN from the terminal and let it parse its arguments or start the program and use it interactively.

This cute little piece of written go code is free software by any means. Do what you what you want with. Enjoy it. Change it and distribute it as long as you mention my name somewhere. Feel free to contact me.

https://sebastiankind.de/post/terminalrechner

and

https://github.com/zeppel13/rpn/blob/master/howto.org

The Link to my blog offers a German description.

  • Install Go any version should do fine
  • compile rpn with
cd ./rpn
go build 
  • test it
rpn 3 3 a 5 d

should give you 1.20

If you wish to compile RPN for older computers e.g. with a Pentium II or anything else which has 387 compatible floatingpoint processor, you need to set this in order to compile and run it correctly. Tested for a Pentium II on Windows XP and Debian Linux. Somewhere on my old computers HDD should exist a small C Port for a 286 Personal Computer. But it shouldn't be too difficult to reprogram this software in any language by yourself.

GO386=387 go build

Table of Contents

  1. Kurzübersicht aller Befehle
    1. Normale Befehle, die man auch braucht
    2. Sonderfunktionern
    3. Ergebnisse Speichern🆒
    4. Designkram
  2. Achtung

Kurzübersicht aller Befehle

Es lohnt sich in den Quelltext zu schauen.

Normale Befehle, die man auch braucht

Befehl Funktion
[Enter] Befehl bearbeiten
sw Registertauschen(1<->2)
r Regiser rollen
drop Letztes Register löschen
reset Alle Register löschen

Operatoren und Operanden werden in eine Zeile eingegeben und mit [Enter] abgearbeitet. Es lassen sich die Eingaben zum Erhalt der Übersichtlichkeit oder aus praktischen Gründen auch nacheinander jeweils mit Enter getrennt eingeben.

Die Eingaben erfolgen nach dem Prinzip der Umgekehrten Polnischen Notation (UPN bzw in Englisch RPN) Wikipedia und YouTube helfen hier.

3 [Enter] = 3

3 [Enter] 5 [Enter] sw [Enter] = 3

Register Wert Fun Facts
3 0  
2 0  
1 5 mit sw kann man [1] und [0] tauschen
0 3  

Rechenoperationen, die sich auf das erste oder die ersten Register beziehen.

Befehl Funktion (Erklärung)
a Addieren
s - Subtrahieren
d / Dividieren
m \* Muliplizieren
mod % Rest bei Division
ux Kehrwert bilden

Beispiel:

3 5 a = 8

7 6 m = 42

5 ux = 0.2

7 4 mod = 3

(3*(4-2))

4 2 s 3 m = 6

(34/5)*(3-4*2)

34 5 d 3 4 2 m s m = -34

3+4+3+6+9

3 4 a 3 a 6 a 9 a = 25

Konstante
e
pi
Trigonometrie
sin
cos
tan
asin
acos
atan

Beispiel:

Komm Standardkram.

30 sin = 0.5

0 sin = 0

0 cos = r

Logarithmen Erklärung
lg Log zur Basis 10
ln Log zur Bais e
log log von [1] zur Basis in [0]

Beispiel:

1024 2 log = 10

100 lg = 2

Potenzen Erklärung
p Potenzieren (basis[1] expont[0] p)
x2 Quadrieren
sqrt Quadratwurzel
cbrt Kubikwurzel
xrt Nte-Wurzel ([1] [0] xtr)

Beispiel:

2 10 p = 1024

10 2 p = 100

16 sqrt = 4

27 cbrt = 3

256 4 xrt = 4

Sonderfunktionern

Befehl Funktion
pq Nullstellen mit pq-Formel errechnen
  [1] [0] pq
distance Orthodromenstrecke berechnen

3 4 pq = -1.5 in [1] und -1.5 [0]

Register Was?
3 Breite1
2 Länge1
1 Breite2
0 Länge2

+48 +10 +40 -89 distance = 7403 km (bis zu Joseph)

Ergebnisse Speichern 🆒

Befehl Funtktion, Paramenter(Freunde)
-> [Zahl oder Stack] -> [Variabelname]
get get [Variabelname]
show Alle Variabeln zeigen

3 -> myvar 13 -> primzahl

3 in die Variabel myvar speichern und 13 in primzahl speichern

get primzahl = 13

show

myvar : 3 primzahl : 13

Befehl Funtktion, Paramenter(Freunde) Fun Facts
store store [Dateiname] Stack(Register) und Variablen in Textdatei speichern
run run [Dateiname] Stack und Variablen aus Textdatei laden
    und Rechnungen durchführen
stop   beendet Programm

Designkram

Befehl Funtktion, Paramenter(Freunde)
view Toggle Stackanzeige
print Stack einmalig zeigen
bin Binäres (gerundetes) Ergbnis

Achtung

Es kann ab und an auch etwas schiefgehen. Die Benutzung ist frei und vollkommen eigenverantwortlich.

Releases

No releases published

Packages

 
 
 

Languages