AA_operatoren_123rf-5053959_ChristosGeorghiou.jpg

© Christos Georghiou, 123RF

Zahlenschieberei

Taschenrechner für den Alltagsgebrauch

19.03.2013
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.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Wissenschaftliche Taschenrechner mit umgekehrt polnischer Notation
    Taschenrechner für den Desktop gibt es reichlich; mit der umgekehrt polnischen Notation können davon nur wenige etwas anfangen. Wir geben eine Einführung in diese ausgefallene mathematische Schreibweise und stellen Programme vor, die sie beherrschen.
  • RPM-Pakete ohne Vorlage selbst erstellen
    Der Prozess, mit dem Distributoren bestehende Pakete auf eine neue Software-Version heben, erlaubt auch dem Normalanwender den unkomplizierten Bau eigener Pakete.
  • Gnomogramm
  • Software
    Im Quartalsrhythmus erscheinen viele Programme in neuer Version. Eine Auswahl stellen wir regelmäßig vor. Auf der Heft-DVD finden Sie die passenden Pakete und Installationshinweise. (Teil 2/2)
  • Zu Befehl: bash, bc
    Es muss nicht immer ein grafischer Taschenrechner wie xcalc oder KCalc sein – auch die Bash beherrscht einfache arithmetische Operationen, und für die fortgeschrittenen Mathematiker gibt's bc.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...