Taschenrechner für den Alltagsgebrauch

Aus LinuxUser 04/2013

Taschenrechner für den Alltagsgebrauch

© Christos Georghiou, 123RF

Zahlenschieberei

Heute geht der Griff zum einst geliebten Taschenrechner oft ins Leere. Gut, dass Linux einen Strauß an digitalen Pendants mitbringt.

Im April 2013 öffnet nach sechs Jahren Renovierung der Mathematisch-physikalische Salon der Staatlichen Kunstsammlungen Dresden [1] wieder seine Pforten. Neben Uhren und Automaten zählen eine große Auswahl von Globen und Navigationsinstrumenten zu den Ausstellungsstücken. Ebenfalls zu bestaunen ist eine der neun noch existierenden “Pascalines” – eine mechanische Rechenmaschine, die Blaise Pascal (1623-1662) im Jahr 1642 entwickelt. Ursprünglich nur als Gerät zur reinen Addition entworfen, beherrschte die Pascaline später die Subtraktion über die Komplementärmethode.

Von der Pascaline zur Z3

Blaise Pascal zählt neben Wilhelm Schickard (1592-1635), Gottfried Wilhelm Leibniz (1646-1716) und Charles Babbage (1791-1871) zu den namhaften Mechanikern, Wissenschaftlern und Ingenieuren, die sich bei der Entwicklung mechanischer Rechenmaschinen hohe Verdienste erwarben.

Zuvor kamen zum Rechnen meist die Finger zum Einsatz, aber ebenso Stäbe mit Markierungen (Kerbhölzer, Napiersche Stäbchen), Knotenschnüre, der Abakus oder ein Rechenblatt nach Adam Ries [26]. Neben den vier Grundrechenarten konnte man mit diesen Methoden bereits Potenzen und Quadratwurzeln ermitteln.

Das bereits 1703 von Leibniz vorgestellte Dualsystem, Babbages “Analytical Engine”, das Lochkartensystem von Hermann Hollerith sowie die um die Jahrhundertwende verstärkt hergestellten und benutzten mechanischen Addiermaschinen zählen zu den Inspirationsquellen, die Konrad Zuse (1910-1995) zur Entwicklung seiner Rechenmaschinen anregten. Der 1941 vorgestellte Z3 [27] gilt als erster vollautomatischer, programmgesteuerter und frei programmierbarer, in binärer Gleitkommarechnung arbeitender Computer der Welt [28].

Von der Pascaline zum modernen Rechner war es zwar ein weiter Weg, aber die Ursprünge finden noch im Namen der heutigen Maschinen: Der Begriff Computer leitet sich vom englischen Verb “to compute” (engl. rechnen) ab und dieses wiederum vom lateinischen “computare” für “zusammenrechnen”.

Um den Rechenknecht zur Mitarbeit zu bewegen, bestehen mehrere Möglichkeiten: Entweder Sie kommunizieren über Maschinen- und Assemblerbefehle direkt mit dessen Prozessor [2], oder Sie nutzen Programme, welche die Zahlen und Anweisungen in Maschinencode übersetzen und das Ergebnis anzeigen. Von letzteren existieren unter Linux eine ganze Reihe. Der Fokus in diesem Beitrag liegt auf Werkzeugen für die Kommandozeile; wir stellen aber auch mit der Maus bedienbare, komplexere Emulationen von Taschencomputern vor, die Grafiken darstellen und Funktionen plotten.

Apropos Kommandozeile: Rechnen lässt sich auch schon in der Shell selbst recht gut. Um etwa in der Bash mehrere, ganzzahlige Werte zu verknüpfen, genügen das Kommando echo und einige Klammern. Den Ausdruck 3 + 4 – 5 schreiben Sie wie folgt:

$ echo $((3+4-5))
2

Die Bash beherrscht keine Fließkommazahlen, sondern nur ganzzahlige 64-Bit-Werte ohne Prüfung auf Überlauf. Ausführlichere Informationen dazu bieten online verfügbare Beiträge von Alexandra Klepatsch [3] und Holger Trapp [4].

Alles mit C

Zu den Urgesteinen unter Unix zählen die beiden Werkzeuge DC und BC. Dabei steht DC als Abkürzung für Desk Calculator und BC für Basic Calculator. Die Programm-Binaries schreiben sich jeweils klein. Beides Tools arbeiten mit sehr hoher Genauigkeit. In den aktuellen Linux-Distributionen finden Sie zumeist GNU BC [5]. BC erwartet den Ausdruck in der gewohnten Infix-Notation (siehe Tabelle “Übersicht zur Notation”), BC hingegen in UPN (siehe Kasten “Umgekehrte Polnische Notation”).

Umgekehrte Polnische Notation

Umgekehrte Polnische Notation (UPN) heißt im englischen Sprachraum Reverse Polish Notation (RPN) oder Postfix Notation. Dahinter verbirgt sich eine Variante einer kompakten und klammerfreien Schreibweise für Aussagenlogik. In der Rechenvorschrift steht der Operator (das Rechenzeichen) nach den beiden Operanden.

UPN ermöglicht eine Berechnung auf vereinfachter Hardware, da es weniger Register zum Speichern der Zwischenergebnisse erfordert. Die stapelbasierten Programmiersprachen Forth, Reverse Polish LISP (RPL) und Postscript nutzen diese Notation sehr intensiv.

Der Name geht auf den polnischen Mathematiker Jan Lukasiewicz (1878-1956) zurück. Als Erfinder der Präfix-Notation schuf er die Grundlagen für diese Schreibweise. Darauf aufbauend leitete Charles Leonard Hamblin (1922-1985) die Postfix-Notation ab.

Übersicht zur Notation

Notation Schreibweise
Infix 3 + 4 – 5
Präfix + 3 4 – 5
Postfix (UPN) 3 4 + 5 –

Nach dem Aufruf über die Kommandozeile geben Sie den Ausdruck ein, den das Programm evaluiert und das Ergebnis darunter aus gibt. Listing 1 zeigt die Ausgabe von DC. Das p in den Zeilen 2 und 4 steht für “print” und sorgt für die Ausgaben in den Zeilen 3 und 5. Mit dem Kommando quit beenden Sie das Programm wieder (gleiches gilt für BC). Bei Bedarf geben Sie die Aufgabe direkt über die Kommandozeile als Parameter mit – dazu dient die Option --expression (Zeile 7)

Listing 1

$ dc4 4 + p
84 4 + 5 + p
13quit
$ dc --expression="4 4 + 5 + p"
13

Python

Python [6] hat sich einen Ruf als mächtige Programmiersprache erarbeitet. Falls Sie den Interpreter nicht mit einem Python-Skript als Parameter aufrufen, öffnet sich die interaktive Python Shell (Abbildung 1). Dort geben Sie Ausdrücke in Infix-Notation ein, samt Klammern und Variablen – für mathematische Funktionen binden Sie aus den entsprechenden Python-Modulen ein. Python nutzt eine dynamische Typisierung und gibt – sofern nicht explizit von Ihnen vorgegeben – das Ergebnis je nach Bedarf als Ganzzahl oder Fließkommazahl aus. Mit [Strg]+[D] beenden Sie die Python-Shell wieder.

Abbildung 1: Die Python-Shell erlaubt neben einfacher Arithmetik komplexe Rechenoperationen über zusätzliche Module.

Abbildung 1: Die Python-Shell erlaubt neben einfacher Arithmetik komplexe Rechenoperationen über zusätzliche Module.

Concalc

Concalc [7], der Taschenrechner für die Konsole bildet neben seiner Funktion als einfacher Rechner die Basis des wissenschaftlichen, grafischen Taschenrechners Extcalc [8]. Concalc erweist sich dann als optimal, wenn nur eine einzige Operation ansteht. Das Programm führt diese aus, gibt das Ergebnis aus und beendet sich danach wieder. Dadurch eignet es sich für den Einsatz in Shell-Skripten.

Concalc akzeptiert Ausdrücke in Infix-Notation und erwartet eine kompakte Schreibweise ohne Leerzeichen zwischen den Operanden und Operatoren (Abbildung 2). Über einen Parameter stoßen Sie bei Bedarf aufwendigere Berechnungen an.

Abbildung 2: Concalc erweist sich in der Praxis als schnörkelloser Rechner, geeignet für den Einsatz in Shell-Skripten.

Abbildung 2: Concalc erweist sich in der Praxis als schnörkelloser Rechner, geeignet für den Einsatz in Shell-Skripten.

Calc

Möchten Sie ihren Fetisch für die Programmiersprachen C oder C++ ausleben, gefällt Ihnen vermutlich Calc [9]. Aufgrund einer Namensgleichheit mit einem bereits bestehenden Programmpaket bekam es unter Debian/Ubuntu die Abkürzung APCalc für “Arbitrary precision calculator”. Bei Calc handelt es sich um einen Taschenrechner mit absoluter Präzision. Die Software speichert gebrochene Zahlen tatsächlich als Brüche und nicht als Fließkommawerte. Calc versteht Ausdrücke in Infix-Notation. Wie in C/C++ üblich, schließen Sie jede Zeile mit einem Semikolon ab (Abbildung 3). Mit dem Kommando exit gelangen Sie zurück auf die Shell.

Abbildung 3: APCalc, oder einfach Calc, ermöglicht ein Rechnen im Stil der Programmiersprachen C und C++.

Abbildung 3: APCalc, oder einfach Calc, ermöglicht ein Rechnen im Stil der Programmiersprachen C und C++.

Wcalc

Einen ähnlichen Anspruch wie Calc erhebt Wcalc [10], ein flexibler, wissenschaftlicher Taschenrechner für die Kommandozeile. Zur Genauigkeit bei Berechnungen mit Fließkommawerten greift es auf die MPFR-Bibliothek [11] zurück. Wcalc bietet die Möglichkeit, nicht nur Dezimalzahlen zu verrechnen, sondern auch Binär-, Oktal- und Hexadezimalwerte (Abbildung 4). Wcalc verfügt über eine integrierte Hilfe, die Sie mit [Umschalt]+[ß] erreichen. Über [Q] verlassen Sie das Programm.

Abbildung 4: Wcalc rechnet mit Dezimal-, aber auch mit Binär-, Oktal- oder Hexadezimalwerten.

Abbildung 4: Wcalc rechnet mit Dezimal-, aber auch mit Binär-, Oktal- oder Hexadezimalwerten.

Exot Orpie

Bei der Recherche für Wcalc geriet uns auch Orpie [12] ins Visier. Wer mit Taschenrechnern von Hewlett-Packard vertraut ist, sollte es näher begutachten. Der stackbasierte Vollbild-Taschenrechner für das Terminal erwartet die Ausdrücke in Postfix-Notation (UPN). Neben den Grundrechenarten unterstützt er Klammerung, reale und komplexe Zahlen sowie Matrizenrechnung. Allerdings setzt Orpie auf der Programmiersprache Objective CAML (OCaml) auf und zieht bei der Installation rund 100 MByte an Paketen nach.

Xcalc

Einer der Urahnen von Taschenrechnern für X11 verbirgt sich im Debian-Paket x11-apps. Xcalc (Abbildung 5) ist klein, verfügt aber über alle notwendigen Funktionen für den Hausgebrauch. Dazu zählen die Grundrechenarten sowie Klammern, Bruchrechnung, Wurzelziehen und Quadratberechnung. Sie bedienen Xcalc per Tastatur und Maus, über [Q] schließen Sie das Fenster wieder.

Abbildung 5: Xcalc reicht in vielen Fällen für den Hausgebrauch.

Abbildung 5: Xcalc reicht in vielen Fällen für den Hausgebrauch.

Mehr Oberfläche

An KDE beziehungsweise Gnome docken sich Kcalc [13] und Abakus [14] sowie GCalctool [15] und Galculator [16] an. In Sachen Funktionsumfang und die Bedienung ähneln sich Kcalc, Gcalctool und Galculator sehr. Es handelt sich um einfache Taschenrechner, welche die Möglichkeit mitbringen, über die Menüleiste zusätzliche Tasten und Funktionen ein- und auszublenden. Dazu zählen Winkelfunktionen, statistische und kaufmännische Funktionen, logische Operatoren, diverse physikalische Konstanten und das Umschalten beim Darstellen der Zahlen zwischen dezimal, oktal, hexadezimal und binär.

Abbildung 6 zeigt die Binärdarstellung in Kcalc. Mit einem Klick auf eines der schwaz-weißen Kästchen unter der Anzeige des Ergebnisses ändern sie das entsprechende Bit im Zahlenwert. GCalctool bietet diese Funktion ebenfalls, dort erreichen sie diese über Ansicht | Programmierung und dürfen dann Nullen und Einsen statt schwarzweißer Kästchen anklicken.

Abbildung 6: Rechnen mit Binärzahlen in Kcalc.

Abbildung 6: Rechnen mit Binärzahlen in Kcalc.

Einige kleine Unterschiede gibt es dennoch. GCalctool bringt einen Währungsumrechner mit. Die aktuellen Wechselkurse bezieht das Programm automatisch via Internet. Das Programm Galculator hat zudem einen Modus, der an eine Papierrolle erinnert (Ansicht | Paper Mode). Alle Formeln geben Sie im unteren Eingabefeld ein, diese erscheinen linksbündig im Feld darüber. Die errechneten Ergebnisse gibt das Programm rechtsbündig darunter aus (Abbildung 7).

Abbildung 7: Ein Traum für Buchhalter: die digitale Papierrolle in Galculator.

Abbildung 7: Ein Traum für Buchhalter: die digitale Papierrolle in Galculator.

Das KDE-Pendant zu Galculator, Abakus, verfügt ebenfalls über einen Papierrollen-Modus. Es hat darüber hinaus die Besonderheit, dass die Ergebnisse der vorangegangenen Berechnungen in den darauf folgenden Aktionen als Variablen bereit stehen. Daneben arbeitet Abakus optional in Postfix-Notation.

Calcoo

Hinter Calcoo [17] verbirgt sich ein kleiner Taschenrechner, der auf GTK+ basiert. Vom Funktionsumfang her liegt er im Mittelfeld und bietet lediglich die Grundrechenarten mit ein paar Erweiterungen für den Alltag. Bei Bedarf schalten Sie von der Infix- in die Postfix-Notation um. Die Konfiguration dazu verbirgt sich hinter dem Ausrufezeichen am linken Rand und ist im Einstellungsfenster als RPN-Modus bezeichnet. Calcoo bietet Ihnen eine Orientierung am Taschenrechner HP-28 [18] und wahlweise einen traditionellen (4 Ebenen) oder unbegrenzten Stack.

High-End

Die bisher vorgestellten Programme genügen den Anforderungen des Alltags völlig. Benötigen Sie jedoch mehr, lohnt ein Blick auf Speedcrunch [19] oder Qalculate [20]: Diese Werkzeuge verfügen über einen riesigen Funktionsumfang. So ähnelt Speedcrunch von der Optik Kcalc und Galculator, bringt aber zusätzlich ein Sessionmanagement und Formelbücher mit. Darüber hinaus zeigt es Variablen, Ziffern, Operatoren und Klammern im Eingabefeld in unterschiedlichen Farben an. Das erleichtert die Fehlersuche.

Dank des Sessionmanagements haben Sie die Möglichkeit, Folgen von Berechnungen als Datei zu speichern, zu einem späteren Zeitpunkt wieder zu laden und an der letzten Position fortzusetzen. Im rechten Teil der Bedienoberfläche zeigt die Software auf Wunsch eine Hilfe an, wie das Formelbuch (Abbildung 8). Sehr praktisch: Mit einem Linksklick in das Eingabefeld zu übertragen Sie die blau dargestellte Formel.

Abbildung 8: Farbige Hervorhebungen in Formeln erleichtern die Fehlersuche, die dank des Formelbuchs aber nur selten notwendig ist.

Abbildung 8: Farbige Hervorhebungen in Formeln erleichtern die Fehlersuche, die dank des Formelbuchs aber nur selten notwendig ist.

Qalculate

Qalculate kann nicht nur Zahlen zusammenrechnen und mit Hilfe von Gnuplot [21] als Graphen ausgeben, sondern daneben auch Polynome vereinfachen und Terme zusammenführen (Abbildung 9). Weiterhin zählen Differenzial- und Integralrechnung sowie das Umrechnen zwischen verschiedenen Einheiten zum Umfang der Software.

Abbildung 9: Auf Wunsch vereinfacht Qalculate Terme.

Abbildung 9: Auf Wunsch vereinfacht Qalculate Terme.

Tiemu

Vielleicht denken Sie voller Sehnsucht an Taschenrechner aus früheren Epochen. Viele davon gibt es als Nachbau in Software, so auch die Taschenrechner 89, 92 und Voyage200 von Texas Instruments (Abbildung 10). Das Projekt Tiemu [22] stellt verschiedene Images samt Firmware sowie den entsprechenden Emulator bereit. Nach der passenden Auswahl legen Sie wie gewohnt los.

Abbildung 10: Tiemu vermittelt ein Gefühl von echtem Taschenrechner.

Abbildung 10: Tiemu vermittelt ein Gefühl von echtem Taschenrechner.

Fazit

Früher war es recht mühsam, Rechenvorgänge zu automatisieren. Das Drehen einer Kurbel ist heute dem geschickte Herumdrücken auf Tasten gewichen. Das Kunststück besteht nun eher darin, die richtige Auswahl zu treffen – vom einfachen Rechner für die Kommandozeile bis hin zum umfangreichen GUI-Programm.

Um Applikationen wie Speedcrunch, Extcalc oder Graphmonkey [23] auszureizen, gilt es etwas Einarbeitungszeit zu investieren. Steht Ihnen der Sinn eher nach einfacheren Dingen, bietet sich Xabacus [24] an. Es stellt das mechanische Hilfsmittel zum Rechnen als X11-Applikation bereit. Damit rechnen Sie auch ohne Internet zuverlässig zwei und zwei zusammen.

Sei es mit dem Abakus, der großartigen Z3 von Zuse oder einem modernen Taschenrechner – es sind alles nur Maschinen, die beim Lösen eines Problems helfen. Das Problem zu formulieren liegt nach wie vor bei Ihnen. Ebenso sollten Sie in der Lage sein, abzuschätzen, ob das errechnete Ergebnis überhaupt stimmig ausfällt. Dann beantworten Sie die Frage “Wieviele Intel-Mitarbeiter braucht man, um eine Glühbirne zu wechseln?” nicht wie der Pentium-Prozessor, bei dem es durchaus 1,9999983256 sein können [25]

Glossar

Komplementärmethode

Binäre Darstellung einer negativen Zahl im Zweierkomplement, dass heißt, mit gesetztem Bit für das Vorzeichen.

Infos

[] Der Autor bedankt sich bei Alexandra Klepatsch, Thomas Osterried und Thomas Winde bei deren kritischen Anmerkungen, Kommentaren und Ergänzungen im Vorfeld dieses Artikels.

[1] Mathematisch-physikalischer Salon: http://www.skd.museum

[2] Linux Assembly HOWTO: http://www.tldp.org/HOWTO/Assembly-HOWTO/

[3] Rechnen in der Shell: http://spielwiese.la-evento.com/xelasblog/archives/21-Rechnen-in-der-Shell.html

[4] Linux-Werkzeugkasten: http://www-user.tu-chemnitz.de/~hot/unix_linux_werkzeugkasten/bash.html#rechnen

[5] GNU BC: http://directory.fsf.org/wiki/Bc

[6] Python: http://www.python.org

[7] Concalc: http://extcalc-linux.sourceforge.net/concalcdescr.html

[8] Extcalc: http://extcalc-linux.sourceforge.net

[9] Calc: http://www.isthe.com/chongo/tech/comp/calc

[10] Wcalc: http://w-calc.sourceforge.net

[11] MPFR: http://www.mpfr.org

[12] Orpie: http://pessimization.com/software/orpie/

[13] Kcalc: http://utils.kde.org/projects/kcalc/

[14] Abakus für KDE: http://purinchu.net/abakus/

[15] Gnome Calculator: https://live.gnome.org/Calculator

[16] Galculator: http://galculator.sourceforge.net

[17] Calcoo: http://calcoo.sourceforge.net

[18] Hewlett Packard HP-28: http://www.hpcalc.org

[19] Speedcrunch: http://speedcrunch.org

[20] Qalculate: http://qalculate.sourceforge.net

[21] Gnuplot: http://www.gnuplot.info

[22] Tiemu: http://lpg.ticalc.org/prj_tiemu/

[23] Graphmonkey: http://graphmonkey.sourceforge.net

[24] Xabacus: http://www.tux.org/~bagleyd/abacus.html

[25] Wikipedia Pentium-FDIV-Bug: http://de.wikipedia.org/wiki/Pentium-FDIV-Bug

[26] Adam-Ries-Museum: http://www.adam-ries-museum.de/

[27] Z3 auf der Webseite von Horst Zuse, http://www.horst-zuse.homepage.t-online.de/z3-detail.html

[28] Wikipedia zu Konrad Zuse: http://de.wikipedia.org/wiki/Konrad_Zuse

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2013 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben